Skip to content

Commit 738ae29

Browse files
committed
Refactor and move tests into shared
1 parent 10e052d commit 738ae29

28 files changed

+444
-132
lines changed

lambdas/delta_backend/tests/test_convert.py

Lines changed: 1 addition & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
import json
21
import os
32
import unittest
4-
from copy import deepcopy
53
from datetime import datetime
64
from unittest.mock import patch
75

86
from boto3 import resource as boto3_resource
97
from moto import mock_aws
108

11-
from common.fhir_to_flat_json.converter import Converter
129
from common.fhir_to_flat_json.mappings import ActionFlag, EventName, Operation
13-
from utils_for_converter_tests import ErrorValuesForTests, ValuesForTests
10+
from utils import ValuesForTests
1411

1512
MOCK_ENV_VARS = {
1613
"AWS_SQS_QUEUE_URL": "https://sqs.eu-west-2.amazonaws.com/123456789012/test-queue",
@@ -136,74 +133,6 @@ def assert_dynamodb_record(
136133
expires_at = unfiltered_items[0]["ExpiresAt"]
137134
self.assertEqual(expires_at - date_time, expected_seconds)
138135

139-
def test_fhir_converter_json_direct_data(self):
140-
"""it should convert fhir json data to flat json"""
141-
json_data = json.dumps(ValuesForTests.json_data)
142-
143-
fhir_converter = Converter(json_data)
144-
FlatFile = fhir_converter.run_conversion()
145-
146-
flatJSON = json.dumps(FlatFile)
147-
expected_imms_value = deepcopy(ValuesForTests.expected_imms2) # UPDATE is currently the default action-flag
148-
expected_imms = json.dumps(expected_imms_value)
149-
self.assertEqual(flatJSON, expected_imms)
150-
151-
errorRecords = fhir_converter.get_error_records()
152-
153-
self.assertEqual(len(errorRecords), 0)
154-
155-
def test_fhir_converter_json_error_scenario_reporting_on(self):
156-
"""it should convert fhir json data to flat json - error scenarios"""
157-
error_test_cases = [
158-
ErrorValuesForTests.missing_json,
159-
ErrorValuesForTests.json_dob_error,
160-
]
161-
162-
for test_case in error_test_cases:
163-
json_data = json.dumps(test_case)
164-
165-
fhir_converter = Converter(json_data)
166-
fhir_converter.run_conversion()
167-
168-
errorRecords = fhir_converter.get_error_records()
169-
170-
# Check if bad data creates error records
171-
self.assertTrue(len(errorRecords) > 0)
172-
173-
def test_fhir_converter_json_error_scenario_reporting_off(self):
174-
"""it should convert fhir json data to flat json - error scenarios"""
175-
error_test_cases = [
176-
ErrorValuesForTests.missing_json,
177-
ErrorValuesForTests.json_dob_error,
178-
]
179-
180-
for test_case in error_test_cases:
181-
json_data = json.dumps(test_case)
182-
183-
fhir_converter = Converter(json_data, report_unexpected_exception=False)
184-
fhir_converter.run_conversion()
185-
186-
errorRecords = fhir_converter.get_error_records()
187-
188-
# Check if bad data creates error records
189-
self.assertTrue(len(errorRecords) == 0)
190-
191-
def test_fhir_converter_json_incorrect_data_scenario_reporting_on(self):
192-
"""it should convert fhir json data to flat json - error scenarios"""
193-
194-
with self.assertRaises(ValueError):
195-
fhir_converter = Converter(None)
196-
errorRecords = fhir_converter.get_error_records()
197-
self.assertTrue(len(errorRecords) > 0)
198-
199-
def test_fhir_converter_json_incorrect_data_scenario_reporting_off(self):
200-
"""it should convert fhir json data to flat json - error scenarios"""
201-
202-
with self.assertRaises(ValueError):
203-
fhir_converter = Converter(None, report_unexpected_exception=False)
204-
errorRecords = fhir_converter.get_error_records()
205-
self.assertTrue(len(errorRecords) == 0)
206-
207136
def test_handler_imms_convert_to_flat_json(self):
208137
"""Test that the Imms field contains the correct flat JSON data for CREATE, UPDATE, and DELETE operations."""
209138
expected_action_flags = [

lambdas/delta_backend/tests/test_delta.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
process_record,
1414
send_message,
1515
)
16-
from utils_for_converter_tests import RecordConfig, ValuesForTests
16+
from utils import RecordConfig, ValuesForTests
1717

1818
TEST_QUEUE_URL = "https://sqs.eu-west-2.amazonaws.com/123456789012/test-queue"
1919
os.environ["AWS_SQS_QUEUE_URL"] = TEST_QUEUE_URL

lambdas/delta_backend/tests/utils_for_converter_tests.py renamed to lambdas/delta_backend/tests/utils.py

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -306,44 +306,6 @@ def get_expected_imms(expected_action_flag):
306306
"CONVERSION_ERRORS": [],
307307
}
308308

309-
expected_imms2 = {
310-
"NHS_NUMBER": "9000000009",
311-
"PERSON_FORENAME": "Sam",
312-
"PERSON_SURNAME": "Trailor",
313-
"PERSON_DOB": "19650228",
314-
"PERSON_GENDER_CODE": "0",
315-
"PERSON_POSTCODE": "EC1A 1BB",
316-
"DATE_AND_TIME": "20210207T13281700",
317-
"SITE_CODE": "B0C4P",
318-
"SITE_CODE_TYPE_URI": "https://fhir.nhs.uk/Id/ods-organization-code",
319-
"UNIQUE_ID": "ACME-vacc123456",
320-
"UNIQUE_ID_URI": "https://supplierABC/identifiers/vacc",
321-
"ACTION_FLAG": "UPDATE",
322-
"PERFORMING_PROFESSIONAL_FORENAME": "Florence",
323-
"PERFORMING_PROFESSIONAL_SURNAME": "Nightingale",
324-
"RECORDED_DATE": "20210207",
325-
"PRIMARY_SOURCE": "TRUE",
326-
"VACCINATION_PROCEDURE_CODE": "13246814444444",
327-
"VACCINATION_PROCEDURE_TERM": "Test Value string 123456 COVID vaccination",
328-
"DOSE_SEQUENCE": "1",
329-
"VACCINE_PRODUCT_CODE": "39114911000001105",
330-
"VACCINE_PRODUCT_TERM": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd) (product)",
331-
"VACCINE_MANUFACTURER": "AstraZeneca Ltd",
332-
"BATCH_NUMBER": "4120Z001",
333-
"EXPIRY_DATE": "20210702",
334-
"SITE_OF_VACCINATION_CODE": "368208006",
335-
"SITE_OF_VACCINATION_TERM": "Left upper arm structure (body structure)",
336-
"ROUTE_OF_VACCINATION_CODE": "78421000",
337-
"ROUTE_OF_VACCINATION_TERM": "Intramuscular route (qualifier value)",
338-
"DOSE_AMOUNT": "0.5",
339-
"DOSE_UNIT_CODE": "ml",
340-
"DOSE_UNIT_TERM": "milliliter",
341-
"INDICATION_CODE": "443684005",
342-
"LOCATION_CODE": "EC1111",
343-
"LOCATION_CODE_TYPE_URI": "https://fhir.nhs.uk/Id/ods-organization-code",
344-
"CONVERSION_ERRORS": [],
345-
}
346-
347309

348310
class ErrorValuesForTests:
349311
json_dob_error = {

lambdas/shared/tests/test_common/fhir_to_flat_json/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)