From 14f8e7a5ff6d18dfadd2b20cf892c05b66103d79 Mon Sep 17 00:00:00 2001 From: Toby Lorne Date: Tue, 20 Oct 2020 13:33:51 +0100 Subject: [PATCH] clients: cbc_proxy client inits lambda client Using correct: * key id * secret key * region Signed-off-by: Toby Lorne Co-authored-by: Pea Co-authored-by: Katie --- app/clients/cbc_proxy.py | 11 ++++++++--- tests/app/clients/test_cbc_proxy.py | 27 +++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 tests/app/clients/test_cbc_proxy.py diff --git a/app/clients/cbc_proxy.py b/app/clients/cbc_proxy.py index 8b8fe436c..2405c67f5 100644 --- a/app/clients/cbc_proxy.py +++ b/app/clients/cbc_proxy.py @@ -1,3 +1,5 @@ +import boto3 + # Noop = no operation class CBCProxyNoopClient: @@ -31,9 +33,12 @@ class CBCProxyNoopClient: class CBCProxyClient: def init_app(self, app): - self.aws_access_key_id = app.config['CBC_PROXY_AWS_ACCESS_KEY_ID'] - self.aws_secret_access_key = app.config['CBC_PROXY_AWS_SECRET_ACCESS_KEY'] - self.aws_region = 'eu-west-2' + self._lambda_client = boto3.client( + 'lambda', + region_name='eu-west-2', + aws_access_key_id=app.config['CBC_PROXY_AWS_ACCESS_KEY_ID'], + aws_secret_access_key=app.config['CBC_PROXY_AWS_SECRET_ACCESS_KEY'], + ) def create_and_send_broadcast( self, diff --git a/tests/app/clients/test_cbc_proxy.py b/tests/app/clients/test_cbc_proxy.py new file mode 100644 index 000000000..34bc89b0c --- /dev/null +++ b/tests/app/clients/test_cbc_proxy.py @@ -0,0 +1,27 @@ +import pytest + +from app.clients.cbc_proxy import CBCProxyClient + + +@pytest.fixture(scope='function') +def cbc_proxy(client, mocker): + client = CBCProxyClient() + 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', + }) + client.init_app(current_app) + return client + + +def test_cbc_proxy_lambda_client_has_correct_region(cbc_proxy): + assert cbc_proxy._lambda_client._client_config.region_name == 'eu-west-2' + pass + + +def test_cbc_proxy_lambda_client_has_correct_keys(cbc_proxy): + key = cbc_proxy._lambda_client._request_signer._credentials.access_key + secret = cbc_proxy._lambda_client._request_signer._credentials.secret_key + + assert key == 'cbc-proxy-aws-access-key-id' + assert secret == 'cbc-proxy-aws-secret-access-key'