mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-23 15:56:45 -04:00
Make service_broadcast_settings.provider non-nullable
We set all existing null values to "all", then make the column non-nullable. Admin is already passing through the value of "all".
This commit is contained in:
@@ -2557,7 +2557,7 @@ class ServiceBroadcastSettings(db.Model):
|
|||||||
channel = db.Column(
|
channel = db.Column(
|
||||||
db.String(255), db.ForeignKey('broadcast_channel_types.name'), nullable=False
|
db.String(255), db.ForeignKey('broadcast_channel_types.name'), nullable=False
|
||||||
)
|
)
|
||||||
provider = db.Column(db.String, db.ForeignKey('broadcast_provider_types.name'), nullable=True)
|
provider = db.Column(db.String, db.ForeignKey('broadcast_provider_types.name'), nullable=False)
|
||||||
created_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow)
|
created_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow)
|
||||||
updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow)
|
updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow)
|
||||||
|
|
||||||
|
|||||||
22
migrations/versions/0353_broadcast_provider_not_null.py
Normal file
22
migrations/versions/0353_broadcast_provider_not_null.py
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
"""
|
||||||
|
|
||||||
|
Revision ID: 0353_broadcast_provider_not_null
|
||||||
|
Revises: 0352_broadcast_provider_types
|
||||||
|
Create Date: 2021-05-10 15:06:40.046786
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
revision = '0353_broadcast_provider_not_null'
|
||||||
|
down_revision = '0352_broadcast_provider_types'
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
op.execute("UPDATE service_broadcast_settings SET provider = 'all' WHERE provider is null")
|
||||||
|
op.alter_column('service_broadcast_settings', 'provider', existing_type=sa.VARCHAR(), nullable=False)
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
op.alter_column('service_broadcast_settings', 'provider', existing_type=sa.VARCHAR(), nullable=True)
|
||||||
|
op.execute("UPDATE service_broadcast_settings SET provider = null WHERE provider = 'all'")
|
||||||
@@ -30,14 +30,7 @@ from tests.app.db import (
|
|||||||
from tests.conftest import set_config
|
from tests.conftest import set_config
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('available_provider', [None, 'all'])
|
def test_send_broadcast_event_queues_up_for_active_providers(mocker, notify_api, sample_broadcast_service):
|
||||||
def test_send_broadcast_event_queues_up_for_active_providers(
|
|
||||||
mocker,
|
|
||||||
notify_api,
|
|
||||||
sample_broadcast_service,
|
|
||||||
available_provider,
|
|
||||||
):
|
|
||||||
sample_broadcast_service.allowed_broadcast_provider = available_provider
|
|
||||||
template = create_template(sample_broadcast_service, BROADCAST_TYPE)
|
template = create_template(sample_broadcast_service, BROADCAST_TYPE)
|
||||||
broadcast_message = create_broadcast_message(template, status=BroadcastStatusType.BROADCASTING)
|
broadcast_message = create_broadcast_message(template, status=BroadcastStatusType.BROADCASTING)
|
||||||
event = create_broadcast_event(broadcast_message)
|
event = create_broadcast_event(broadcast_message)
|
||||||
|
|||||||
@@ -292,8 +292,6 @@ def test_get_service_by_id(admin_request, sample_service):
|
|||||||
@pytest.mark.parametrize('broadcast_channel,allowed_broadcast_provider', (
|
@pytest.mark.parametrize('broadcast_channel,allowed_broadcast_provider', (
|
||||||
('test', 'all'),
|
('test', 'all'),
|
||||||
('severe', 'all'),
|
('severe', 'all'),
|
||||||
('test', None),
|
|
||||||
('severe', None),
|
|
||||||
('test', 'ee'),
|
('test', 'ee'),
|
||||||
('severe', 'three'),
|
('severe', 'three'),
|
||||||
))
|
))
|
||||||
@@ -3719,7 +3717,7 @@ def test_set_as_broadcast_service_sets_broadcast_channel(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': channel,
|
'broadcast_channel': channel,
|
||||||
'service_mode': 'live',
|
'service_mode': 'live',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
result = admin_request.post(
|
result = admin_request.post(
|
||||||
@@ -3744,7 +3742,7 @@ def test_set_as_broadcast_service_updates_channel_for_broadcast_service(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': "test",
|
'broadcast_channel': "test",
|
||||||
'service_mode': 'training',
|
'service_mode': 'training',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
result = admin_request.post(
|
result = admin_request.post(
|
||||||
@@ -3768,7 +3766,7 @@ def test_set_as_broadcast_service_rejects_unknown_channels(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': channel,
|
'broadcast_channel': channel,
|
||||||
'service_mode': 'live',
|
'service_mode': 'live',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
admin_request.post(
|
admin_request.post(
|
||||||
@@ -3784,7 +3782,7 @@ def test_set_as_broadcast_service_rejects_if_no_channel(
|
|||||||
):
|
):
|
||||||
data = {
|
data = {
|
||||||
'service_mode': 'training',
|
'service_mode': 'training',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
admin_request.post(
|
admin_request.post(
|
||||||
@@ -3807,7 +3805,7 @@ def test_set_as_broadcast_service_gives_broadcast_permission_and_removes_other_c
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': "severe",
|
'broadcast_channel': "severe",
|
||||||
'service_mode': 'training',
|
'service_mode': 'training',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
result = admin_request.post(
|
result = admin_request.post(
|
||||||
@@ -3838,7 +3836,7 @@ def test_set_as_broadcast_service_maintains_broadcast_permission_for_existing_br
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': "severe",
|
'broadcast_channel': "severe",
|
||||||
'service_mode': 'live',
|
'service_mode': 'live',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
result = admin_request.post(
|
result = admin_request.post(
|
||||||
@@ -3860,7 +3858,7 @@ def test_set_as_broadcast_service_sets_count_as_live_to_false(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': "severe",
|
'broadcast_channel': "severe",
|
||||||
'service_mode': 'live',
|
'service_mode': 'live',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
result = admin_request.post(
|
result = admin_request.post(
|
||||||
'service.set_as_broadcast_service',
|
'service.set_as_broadcast_service',
|
||||||
@@ -3881,7 +3879,7 @@ def test_set_as_broadcast_service_sets_service_org_to_broadcast_org(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': "severe",
|
'broadcast_channel': "severe",
|
||||||
'service_mode': 'training',
|
'service_mode': 'training',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
result = admin_request.post(
|
result = admin_request.post(
|
||||||
'service.set_as_broadcast_service',
|
'service.set_as_broadcast_service',
|
||||||
@@ -3900,7 +3898,7 @@ def test_set_as_broadcast_service_does_not_error_if_run_on_a_service_that_is_alr
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': "severe",
|
'broadcast_channel': "severe",
|
||||||
'service_mode': "live",
|
'service_mode': "live",
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
for _ in range(2):
|
for _ in range(2):
|
||||||
admin_request.post(
|
admin_request.post(
|
||||||
@@ -3922,7 +3920,7 @@ def test_set_as_broadcast_service_sets_service_to_live_mode(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': 'severe',
|
'broadcast_channel': 'severe',
|
||||||
'service_mode': 'live',
|
'service_mode': 'live',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
result = admin_request.post(
|
result = admin_request.post(
|
||||||
@@ -3947,7 +3945,7 @@ def test_set_as_broadcast_service_doesnt_override_existing_go_live_at(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': 'severe',
|
'broadcast_channel': 'severe',
|
||||||
'service_mode': 'live',
|
'service_mode': 'live',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
result = admin_request.post(
|
result = admin_request.post(
|
||||||
@@ -3973,7 +3971,7 @@ def test_set_as_broadcast_service_sets_service_to_training_mode(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': 'severe',
|
'broadcast_channel': 'severe',
|
||||||
'service_mode': 'training',
|
'service_mode': 'training',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
result = admin_request.post(
|
result = admin_request.post(
|
||||||
@@ -3993,7 +3991,7 @@ def test_set_as_broadcast_service_rejects_unknown_service_mode(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': 'severe',
|
'broadcast_channel': 'severe',
|
||||||
'service_mode': service_mode,
|
'service_mode': service_mode,
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
admin_request.post(
|
admin_request.post(
|
||||||
@@ -4009,7 +4007,7 @@ def test_set_as_broadcast_service_rejects_if_no_service_mode(
|
|||||||
):
|
):
|
||||||
data = {
|
data = {
|
||||||
'broadcast_channel': 'severe',
|
'broadcast_channel': 'severe',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
admin_request.post(
|
admin_request.post(
|
||||||
@@ -4020,7 +4018,7 @@ def test_set_as_broadcast_service_rejects_if_no_service_mode(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('provider', [None, "all", "three", "ee", "vodafone", "o2"])
|
@pytest.mark.parametrize('provider', ["all", "three", "ee", "vodafone", "o2"])
|
||||||
def test_set_as_broadcast_service_sets_mobile_provider_restriction(
|
def test_set_as_broadcast_service_sets_mobile_provider_restriction(
|
||||||
admin_request, sample_service, broadcast_organisation, provider
|
admin_request, sample_service, broadcast_organisation, provider
|
||||||
):
|
):
|
||||||
@@ -4045,7 +4043,7 @@ def test_set_as_broadcast_service_sets_mobile_provider_restriction(
|
|||||||
assert records[0].provider == provider
|
assert records[0].provider == provider
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('provider', [None, "vodafone"])
|
@pytest.mark.parametrize('provider', ["all", "vodafone"])
|
||||||
def test_set_as_broadcast_service_updates_mobile_provider_restriction(
|
def test_set_as_broadcast_service_updates_mobile_provider_restriction(
|
||||||
admin_request, notify_db, sample_broadcast_service, provider
|
admin_request, notify_db, sample_broadcast_service, provider
|
||||||
):
|
):
|
||||||
@@ -4116,7 +4114,7 @@ def test_set_as_broadcast_service_updates_services_history(
|
|||||||
data = {
|
data = {
|
||||||
'broadcast_channel': 'test',
|
'broadcast_channel': 'test',
|
||||||
'service_mode': 'live',
|
'service_mode': 'live',
|
||||||
'provider_restriction': None,
|
'provider_restriction': "all",
|
||||||
}
|
}
|
||||||
|
|
||||||
admin_request.post(
|
admin_request.post(
|
||||||
|
|||||||
Reference in New Issue
Block a user