mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-01 15:46:07 -05:00
add CBC_PROXY_ENABLED config flag to control if tasks are triggered
previously we made some incorrect assumptions about set-up on staging and prod - they currently don't have any cbc_proxy aws creds at all. We shoudn't be attempting canaries or link tests when there's no AWS infrastructure to connect to. We also shouldn't bother writing a row into the database at all for the broadcast_provider_message since we're not even attempting to send, and we shouldn't get confused between messages that failed and messages we never wanted to send at all.
This commit is contained in:
@@ -31,6 +31,18 @@ def test_send_broadcast_event_queues_up_for_active_providers(mocker, notify_api)
|
||||
]
|
||||
|
||||
|
||||
def test_send_broadcast_event_does_nothing_if_cbc_proxy_disabled(mocker, notify_api):
|
||||
mock_send_broadcast_provider_message = mocker.patch(
|
||||
'app.celery.broadcast_message_tasks.send_broadcast_provider_message',
|
||||
)
|
||||
|
||||
event_id = uuid.uuid4()
|
||||
with set_config(notify_api, 'ENABLED_CBCS', ['ee', 'vodafone']), set_config(notify_api, 'CBC_PROXY_ENABLED', False):
|
||||
send_broadcast_event(event_id)
|
||||
|
||||
assert mock_send_broadcast_provider_message.apply_async.called is False
|
||||
|
||||
|
||||
@freeze_time('2020-08-01 12:00')
|
||||
def test_send_broadcast_provider_message_sends_data_correctly(mocker, sample_service):
|
||||
template = create_template(sample_service, BROADCAST_TYPE)
|
||||
|
||||
@@ -569,7 +569,7 @@ def test_send_canary_to_cbc_proxy_invokes_cbc_proxy_client(
|
||||
|
||||
scheduled_tasks.send_canary_to_cbc_proxy()
|
||||
|
||||
mock_send_canary.assert_called
|
||||
assert mock_send_canary.called is True
|
||||
# the 0th argument of the call to send_canary
|
||||
identifier = mock_send_canary.mock_calls[0][1][0]
|
||||
|
||||
@@ -579,6 +579,19 @@ def test_send_canary_to_cbc_proxy_invokes_cbc_proxy_client(
|
||||
pytest.fail(f"{identifier} is not a valid uuid")
|
||||
|
||||
|
||||
def test_send_canary_to_cbc_proxy_does_nothing_if_cbc_proxy_disabled(
|
||||
mocker, notify_api
|
||||
):
|
||||
mock_send_canary = mocker.patch(
|
||||
'app.clients.cbc_proxy.CBCProxyCanary.send_canary',
|
||||
)
|
||||
|
||||
with set_config(notify_api, 'CBC_PROXY_ENABLED', False):
|
||||
scheduled_tasks.send_canary_to_cbc_proxy()
|
||||
|
||||
assert mock_send_canary.called is False
|
||||
|
||||
|
||||
def test_trigger_link_tests_calls_for_all_providers(
|
||||
mocker, notify_api
|
||||
):
|
||||
@@ -593,3 +606,16 @@ def test_trigger_link_tests_calls_for_all_providers(
|
||||
call(kwargs={'provider': 'ee'}, queue='notify-internal-tasks'),
|
||||
call(kwargs={'provider': 'vodafone'}, queue='notify-internal-tasks')
|
||||
]
|
||||
|
||||
|
||||
def test_trigger_link_does_nothing_if_cbc_proxy_disabled(
|
||||
mocker, notify_api
|
||||
):
|
||||
mock_trigger_link_test = mocker.patch(
|
||||
'app.celery.scheduled_tasks.trigger_link_test',
|
||||
)
|
||||
|
||||
with set_config(notify_api, 'ENABLED_CBCS', ['ee', 'vodafone']), set_config(notify_api, 'CBC_PROXY_ENABLED', False):
|
||||
trigger_link_tests()
|
||||
|
||||
assert mock_trigger_link_test.called is False
|
||||
|
||||
@@ -13,6 +13,7 @@ def cbc_proxy_client(client, mocker):
|
||||
current_app = mocker.Mock(config={
|
||||
'CBC_PROXY_AWS_ACCESS_KEY_ID': 'cbc-proxy-aws-access-key-id',
|
||||
'CBC_PROXY_AWS_SECRET_ACCESS_KEY': 'cbc-proxy-aws-secret-access-key',
|
||||
'CBC_PROXY_ENABLED': True,
|
||||
})
|
||||
client.init_app(current_app)
|
||||
return client
|
||||
|
||||
Reference in New Issue
Block a user