Store anticipated volumes as integers

This will make it easier to do analysis on the data. Almost all users
are submitting data in a numerical format now anyway, because we ask the
question in a sensible way.
This commit is contained in:
Chris Hill-Scott
2019-02-15 10:08:22 +00:00
parent 17e32fa5f6
commit ecdf076506
3 changed files with 12 additions and 9 deletions
+3 -3
View File
@@ -361,9 +361,9 @@ class Service(db.Model, Versioned):
crown = db.Column(db.Boolean, index=False, nullable=False, default=True) crown = db.Column(db.Boolean, index=False, nullable=False, default=True)
rate_limit = db.Column(db.Integer, index=False, nullable=False, default=3000) rate_limit = db.Column(db.Integer, index=False, nullable=False, default=3000)
contact_link = db.Column(db.String(255), nullable=True, unique=False) contact_link = db.Column(db.String(255), nullable=True, unique=False)
volume_sms = db.Column(db.String(255), nullable=True, unique=False) volume_sms = db.Column(db.Integer(), nullable=True, unique=False)
volume_email = db.Column(db.String(255), nullable=True, unique=False) volume_email = db.Column(db.Integer(), nullable=True, unique=False)
volume_letter = db.Column(db.String(255), nullable=True, unique=False) volume_letter = db.Column(db.Integer(), nullable=True, unique=False)
organisation = db.relationship( organisation = db.relationship(
'Organisation', 'Organisation',
+1 -1
View File
@@ -22,7 +22,7 @@ TABLES_AND_CHANNELS = product(
def upgrade(): def upgrade():
for table, channel in TABLES_AND_CHANNELS: for table, channel in TABLES_AND_CHANNELS:
op.add_column(table, sa.Column(channel, sa.String(length=255), nullable=True)) op.add_column(table, sa.Column(channel, sa.Integer(), nullable=True))
def downgrade(): def downgrade():
+8 -5
View File
@@ -620,15 +620,18 @@ def test_update_service_sets_crown(client, sample_service, org_type, expected):
'volume_sms', 'volume_sms',
'volume_letter', 'volume_letter',
)) ))
@pytest.mark.parametrize('value', ( @pytest.mark.parametrize('value, expected_status, expected_persisted', (
'ABC123', (1234, 200, 1234),
None, (None, 200, None),
('Aa', 400, None),
)) ))
def test_update_service_sets_volumes( def test_update_service_sets_volumes(
admin_request, admin_request,
sample_service, sample_service,
field, field,
value, value,
expected_status,
expected_persisted,
): ):
admin_request.post( admin_request.post(
'service.update_service', 'service.update_service',
@@ -636,9 +639,9 @@ def test_update_service_sets_volumes(
_data={ _data={
field: value, field: value,
}, },
_expected_status=200, _expected_status=expected_status,
) )
assert getattr(sample_service, field) == value assert getattr(sample_service, field) == expected_persisted
@pytest.fixture(scope='function') @pytest.fixture(scope='function')