2525request_json_data = ValuesForTests .json_data
2626with patch .dict ("os.environ" , MOCK_ENV_VARS ):
2727 from delta import handler , Converter
28- from Converter import imms , ErrorRecords
28+ from Converter import imms
2929
3030
3131@patch .dict ("os.environ" , MOCK_ENV_VARS , clear = True )
@@ -215,22 +215,27 @@ def test_fhir_parser_exception(self, mock_fhir_parser):
215215 self .assertEqual (len (response ), 2 )
216216 self .assertIn ("FHIR Parser Unexpected exception" , converter .getErrorRecords ()[0 ]["message" ])
217217 self .assertEqual (converter .getErrorRecords ()[0 ]["code" ], 0 )
218-
218+
219+ @patch ("Converter.FHIRParser" )
219220 @patch ("Converter.SchemaParser" )
220- def test_schema_parser_exception (self , mock_schema_parser ):
221+ def test_schema_parser_exception (self , mock_schema_parser , mock_fhir_parser ):
222+
223+ # Mock FHIRParser to return normally
224+ mock_fhir_instance = Mock ()
225+ mock_fhir_instance .parseFHIRData .return_value = None
226+ mock_fhir_parser .return_value = mock_fhir_instance
227+
221228 # Mock SchemaParser to raise an exception
222229 mock_schema_parser .side_effect = Exception ("Schema Parsing Error" )
223- converter = Converter (fhir_data = "some_data " )
230+ converter = Converter (fhir_data = "{} " )
224231
225- response = converter .runConversion ("some_data" )
232+ converter .runConversion ("some_data" )
226233
227234 # Check if the error message was added to ErrorRecords
228- self .assertEqual (len (response ), 2 )
229- self .assertIn (
230- "FHIR Parser Unexpected exception [JSONDecodeError]: Expecting value: line 1 column 1 (char 0)" ,
231- converter .getErrorRecords ()[0 ]["message" ],
232- )
233- self .assertEqual (converter .getErrorRecords ()[0 ]["code" ], 0 )
235+ errors = converter .getErrorRecords ()
236+ self .assertEqual (len (errors ), 3 )
237+ self .assertIn ("Schema Parser Unexpected exception" , errors [2 ]["message" ])
238+ self .assertEqual (errors [0 ]["code" ], 0 )
234239
235240 @patch ("Converter.ConversionChecker" )
236241 def test_conversion_checker_exception (self , mock_conversion_checker ):
@@ -257,7 +262,7 @@ def test_get_conversions_exception(self, mock_get_conversions):
257262 response = converter .runConversion (ValuesForTests .json_data )
258263
259264 # Check if the error message was added to ErrorRecords
260- self .assertEqual (len (converter .getErrorRecords ()), 3 )
265+ self .assertEqual (len (converter .getErrorRecords ()), 2 )
261266 self .assertIn (
262267 "FHIR Parser Unexpected exception [JSONDecodeError]: Expecting value: line 1 column 1 (char 0)" ,
263268 converter .getErrorRecords ()[0 ]["message" ],
@@ -269,7 +274,6 @@ def test_get_conversions_exception(self, mock_get_conversions):
269274 def test_conversion_exceptions (self , mock_get_key_value , mock_get_conversions ):
270275 mock_get_conversions .side_effect = Exception ("Error while getting conversions" )
271276 mock_get_key_value .side_effect = Exception ("Key value retrieval failed" )
272- ErrorRecords .clear ()
273277 converter = Converter (fhir_data = "some_data" )
274278
275279 schema = {
@@ -383,7 +387,7 @@ def test_convert_to_date(self, MockLookUpData):
383387 self .assertIn ("Date cannot be in the future" , messages )
384388
385389 # Confirm Total Errors Per conversion
386- self .assertEqual (len (checker .errorRecords ), 5 )
390+ self .assertEqual (len (checker .errorRecords ), 4 )
387391
388392 @patch ("ConversionChecker.LookUpData" )
389393 def test_convert_to_date_time (self , MockLookUpData ):
@@ -536,6 +540,7 @@ def _run_test(self, expected_forename):
536540 flat_json = self .converter .runConversion (request_json_data , False , True )
537541 self .assertEqual (flat_json [0 ]["PERSON_FORENAME" ], expected_forename )
538542
543+
539544class TestPersonSurNameToFlatJson (unittest .TestCase ):
540545
541546 def test_person_surname_multiple_names_official (self ):
@@ -624,6 +629,7 @@ def _run_test_surname(self, expected_forename):
624629 flat_json = self .converter .runConversion (request_json_data , False , True )
625630 self .assertEqual (flat_json [0 ]["PERSON_SURNAME" ], expected_forename )
626631
632+
627633class TestPersonPostalCodeToFlatJson (unittest .TestCase ):
628634 def test_person_postal_code_single_address (self ):
629635 """Test case where only one address instance exists"""
@@ -712,6 +718,7 @@ def _run_postal_code_test(self, expected_postal_code):
712718 flat_json = self .converter .runConversion (request_json_data , False , True )
713719 self .assertEqual (flat_json [0 ]["PERSON_POSTCODE" ], expected_postal_code )
714720
721+
715722class TestPersonSiteCodeToFlatJson (unittest .TestCase ):
716723 def test_site_code_single_performer (self ):
717724 """Test case where only one performer instance exists"""
@@ -830,6 +837,7 @@ def _run_site_code_test(self, expected_site_code):
830837 flat_json = self .converter .runConversion (request_json_data , False , True )
831838 self .assertEqual (flat_json [0 ].get ("SITE_CODE" ), expected_site_code )
832839
840+
833841class TestPersonSiteUriToFlatJson (unittest .TestCase ):
834842 def test_site_uri_single_performer (self ):
835843 """Test case where only one performer instance exists"""
@@ -920,6 +928,7 @@ def _run_site_uri_test(self, expected_site_code):
920928 flat_json = self .converter .runConversion (request_json_data , False , True )
921929 self .assertEqual (flat_json [0 ].get ("SITE_CODE_TYPE_URI" ), expected_site_code )
922930
931+
923932class TestPractitionerForeNameToFlatJson (unittest .TestCase ):
924933 def test_practitioner_forename_multiple_names_official (self ):
925934 """Test case where multiple name instances exist, and one has use=official with period covering vaccination date"""
@@ -1035,6 +1044,7 @@ def _run_practitioner_test(self, expected_forename):
10351044 flat_json = self .converter .runConversion (request_json_data , False , True )
10361045 self .assertEqual (flat_json [0 ]["PERFORMING_PROFESSIONAL_FORENAME" ], expected_forename )
10371046
1047+
10381048class TestPractitionerSurNameToFlatJson (unittest .TestCase ):
10391049 def test_practitioner_surname_multiple_names_official (self ):
10401050 """Test case where multiple name instances exist, and one has use=official with period covering vaccination date"""
0 commit comments