diff --git a/app/clients/cbc_proxy.py b/app/clients/cbc_proxy.py index 7e3cf6ba4..81f3c7f46 100644 --- a/app/clients/cbc_proxy.py +++ b/app/clients/cbc_proxy.py @@ -52,12 +52,17 @@ class CBCProxyClient: 'description': description, }), encoding='utf8') - self._ld_client.invoke( + result = self._ld_client.invoke( FunctionName='bt-ee-1-proxy', InvocationType='RequestResponse', Payload=payload_bytes, ) - pass + + if result['StatusCode'] > 299: + raise Exception('Could not invoke lambda') + + if 'FunctionError' in result: + raise Exception('Function exited with unhandled exception') # We have not implementated updating a broadcast def update_and_send_broadcast( diff --git a/tests/app/clients/test_cbc_proxy.py b/tests/app/clients/test_cbc_proxy.py index bc8fe429f..123c1c4ea 100644 --- a/tests/app/clients/test_cbc_proxy.py +++ b/tests/app/clients/test_cbc_proxy.py @@ -29,6 +29,7 @@ def test_cbc_proxy_ld_client_has_correct_keys(cbc_proxy): assert secret == 'cbc-proxy-aws-secret-access-key' + def test_cbc_proxy_create_and_send_invokes_function(mocker, cbc_proxy): identifier = 'my-identifier' headline = 'my-headline' @@ -40,6 +41,10 @@ def test_cbc_proxy_create_and_send_invokes_function(mocker, cbc_proxy): create=True, ) + ld_client_mock.invoke.return_value = { + 'StatusCode': 200, + } + cbc_proxy.create_and_send_broadcast( identifier=identifier, headline=headline,