Skip to content

Commit d6f5e12

Browse files
authored
Merge branch 'master' into APM-000-AMP-3654-removed-interactive-product-backlog
2 parents e847da6 + 9fe60d3 commit d6f5e12

26 files changed

+484
-137
lines changed

backend/src/create_imms_handler.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import argparse
2+
import logging
23
import pprint
34
import uuid
45

@@ -9,16 +10,19 @@
910
from log_structure import function_info
1011
from constants import GENERIC_SERVER_ERROR_DIAGNOSTICS_MESSAGE
1112

13+
logging.basicConfig(level="INFO")
14+
logger = logging.getLogger()
1215

1316
@function_info
14-
def create_imms_handler(event, context):
17+
def create_imms_handler(event, _context):
1518
return create_immunization(event, make_controller())
1619

1720

1821
def create_immunization(event, controller: FhirController):
1922
try:
2023
return controller.create_immunization(event)
2124
except Exception: # pylint: disable = broad-exception-caught
25+
logger.exception("Unhandled exception")
2226
exp_error = create_operation_outcome(
2327
resource_id=str(uuid.uuid4()),
2428
severity=Severity.error,

backend/src/delete_imms_handler.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import argparse
2+
import logging
23
import pprint
34
import uuid
45

@@ -8,16 +9,19 @@
89
from log_structure import function_info
910
from constants import GENERIC_SERVER_ERROR_DIAGNOSTICS_MESSAGE
1011

12+
logging.basicConfig(level="INFO")
13+
logger = logging.getLogger()
1114

1215
@function_info
13-
def delete_imms_handler(event, context):
16+
def delete_imms_handler(event, _context):
1417
return delete_immunization(event, make_controller())
1518

1619

1720
def delete_immunization(event, controller: FhirController):
1821
try:
1922
return controller.delete_immunization(event)
2023
except Exception: # pylint: disable = broad-exception-caught
24+
logger.exception("Unhandled exception")
2125
exp_error = create_operation_outcome(
2226
resource_id=str(uuid.uuid4()),
2327
severity=Severity.error,

backend/src/get_imms_handler.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import argparse
2+
import logging
23
import pprint
34
import uuid
45

@@ -8,16 +9,19 @@
89
from log_structure import function_info
910
from constants import GENERIC_SERVER_ERROR_DIAGNOSTICS_MESSAGE
1011

12+
logging.basicConfig(level="INFO")
13+
logger = logging.getLogger()
1114

1215
@function_info
13-
def get_imms_handler(event, context):
16+
def get_imms_handler(event, _context):
1417
return get_immunization_by_id(event, make_controller())
1518

1619

1720
def get_immunization_by_id(event, controller: FhirController):
1821
try:
1922
return controller.get_immunization_by_id(event)
2023
except Exception: # pylint: disable = broad-exception-caught
24+
logger.exception("Unhandled exception")
2125
exp_error = create_operation_outcome(
2226
resource_id=str(uuid.uuid4()),
2327
severity=Severity.error,

backend/src/get_status_handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
def get_status_handler(event, context):
1+
def get_status_handler(_event, _context):
22
response = {
33
"statusCode": 200, # HTTP status code
44
"body": "OK"

backend/src/log_structure.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import logging
21
import json
2+
import logging
33
import time
44
from datetime import datetime
55
from functools import wraps
6+
67
from log_firehose import FirehoseLogger
7-
from models.utils.generic_utils import extract_file_key_elements
88

99
logging.basicConfig()
1010
logger = logging.getLogger()

backend/src/not_found_handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def not_found_handler(event, context):
88
return not_found(event, context)
99

1010

11-
def not_found(event, context):
11+
def not_found(event, _context):
1212

1313
if event.get("httpMethod") not in ALLOWED_METHODS:
1414
response = {

backend/src/search_imms_handler.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import argparse
22
import json
3+
import logging
34
import pprint
45
import traceback
56
import uuid
@@ -14,9 +15,11 @@
1415
import base64
1516
import urllib.parse
1617

18+
logging.basicConfig(level="INFO")
19+
logger = logging.getLogger()
1720

1821
@function_info
19-
def search_imms_handler(event: events.APIGatewayProxyEventV1, context: context_):
22+
def search_imms_handler(event: events.APIGatewayProxyEventV1, _context: context_):
2023
return search_imms(event, make_controller())
2124

2225

@@ -67,6 +70,7 @@ def search_imms(event: events.APIGatewayProxyEventV1, controller: FhirController
6770
return FhirController.create_response(400, exp_error)
6871
return response
6972
except Exception: # pylint: disable = broad-exception-caught
73+
logger.exception("Unhandled exception")
7074
exp_error = create_operation_outcome(
7175
resource_id=str(uuid.uuid4()),
7276
severity=Severity.error,

backend/src/update_imms_handler.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import argparse
2+
import logging
23
import pprint
34
import uuid
45

@@ -9,16 +10,19 @@
910
from log_structure import function_info
1011
from constants import GENERIC_SERVER_ERROR_DIAGNOSTICS_MESSAGE
1112

13+
logging.basicConfig(level="INFO")
14+
logger = logging.getLogger()
1215

1316
@function_info
14-
def update_imms_handler(event, context):
17+
def update_imms_handler(event, _context):
1518
return update_imms(event, make_controller())
1619

1720

1821
def update_imms(event, controller: FhirController):
1922
try:
2023
return controller.update_immunization(event)
2124
except Exception: # pylint: disable = broad-exception-caught
25+
logger.exception("Unhandled exception")
2226
exp_error = create_operation_outcome(
2327
resource_id=str(uuid.uuid4()),
2428
severity=Severity.error,

backend/tests/test_log_structure_wrapper.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,28 @@
33
from unittest.mock import patch, MagicMock, ANY
44
from src.log_structure import function_info
55

6-
"test"
6+
7+
@patch('src.log_structure.firehose_logger')
8+
@patch('src.log_structure.logger')
79
class TestFunctionInfoWrapper(unittest.TestCase):
810

911
@staticmethod
10-
def mock_success_function(event, context):
12+
def mock_success_function(_event, _context):
1113
return "Success"
12-
14+
1315
@staticmethod
14-
def mock_function_raises(event, context):
16+
def mock_function_raises(_event, _context):
1517
raise ValueError("Test error")
1618

17-
@patch('src.log_structure.logger')
18-
def test_successful_execution(self, mock_logger):
19+
def test_successful_execution(self, mock_logger, mock_firehose_logger):
1920
# Arrange
2021
wrapped_function = function_info(self.mock_success_function)
2122
event = {
2223
'headers': {
2324
'X-Correlation-ID': 'test_correlation',
2425
'X-Request-ID': 'test_request'
25-
},
26-
'path': '/test',
26+
},
27+
'path': '/test',
2728
'requestContext': {'resourcePath': '/test'}
2829
}
2930

@@ -33,6 +34,7 @@ def test_successful_execution(self, mock_logger):
3334
# Assert
3435
self.assertEqual(result, "Success")
3536
mock_logger.info.assert_called()
37+
mock_firehose_logger.send_log.assert_called()
3638

3739
args, kwargs = mock_logger.info.call_args
3840
logged_info = json.loads(args[0])
@@ -43,9 +45,8 @@ def test_successful_execution(self, mock_logger):
4345
self.assertEqual(logged_info['X-Request-ID'], 'test_request')
4446
self.assertEqual(logged_info['actual_path'], '/test')
4547
self.assertEqual(logged_info['resource_path'], '/test')
46-
47-
@patch('src.log_structure.logger')
48-
def test_exception_handling(self, mock_logger):
48+
49+
def test_exception_handling(self, mock_logger, mock_firehose_logger):
4950

5051
#Act
5152
decorated_function_raises = function_info(self.mock_function_raises)
@@ -55,20 +56,22 @@ def test_exception_handling(self, mock_logger):
5556
event = {'headers': {
5657
'X-Correlation-ID': 'failed_test_correlation',
5758
'X-Request-ID': 'failed_test_request'
58-
},
59+
},
5960
'path': '/failed_test', 'requestContext': {'resourcePath': '/failed_test'}}
6061
context = {}
6162
decorated_function_raises(event, context)
6263

6364
#Assert
6465
mock_logger.exception.assert_called()
66+
mock_firehose_logger.send_log.assert_called()
67+
6568
args, kwargs = mock_logger.exception.call_args
6669
logged_info = json.loads(args[0])
67-
70+
6871
self.assertIn('function_name', logged_info)
6972
self.assertIn('time_taken', logged_info)
7073
self.assertEqual(logged_info['X-Correlation-ID'], 'failed_test_correlation')
7174
self.assertEqual(logged_info['X-Request-ID'], 'failed_test_request')
7275
self.assertEqual(logged_info['actual_path'], '/failed_test')
7376
self.assertEqual(logged_info['resource_path'], '/failed_test')
74-
self.assertEqual(logged_info['error'], str(ValueError("Test error")))
77+
self.assertEqual(logged_info['error'], str(ValueError("Test error")))

filenameprocessor/src/constants.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
AUDIT_TABLE_FILENAME_GSI = "filename_index"
1818

1919
PERMISSIONS_CONFIG_FILE_KEY = "permissions_config.json"
20+
VACCINE_TYPE_TO_DISEASES_HASH_KEY = "vacc_to_diseases"
2021

2122
ERROR_TYPE_TO_STATUS_CODE_MAP = {
2223
VaccineTypePermissionsError: 403,
@@ -50,9 +51,6 @@ class AuditTableKeys:
5051

5152
class Constants:
5253
"""Constants for the filenameprocessor lambda"""
53-
54-
VALID_VACCINE_TYPES = ["FLU", "COVID19", "MMR", "RSV"]
55-
5654
VALID_VERSIONS = ["V5"]
5755

5856
# Mappings from ODS code to supplier name.

0 commit comments

Comments
 (0)