1414from authorisation .api_operation_code import ApiOperationCode
1515from authorisation .authoriser import Authoriser
1616from constants import NHS_NUMBER_USED_IN_SAMPLE_DATA
17- from models .errors import (
17+ from common . models .errors import (
1818 CustomValidationError ,
1919 IdentifierDuplicationError ,
2020 InconsistentIdentifierError ,
2121 InconsistentResourceVersion ,
2222 ResourceNotFoundError ,
2323 UnauthorizedVaxError ,
2424)
25- from models .fhir_immunization import ImmunizationValidator
26- from models .immunization_record_metadata import ImmunizationRecordMetadata
25+ from common . models .fhir_immunization import ImmunizationValidator
26+ from common . models .immunization_record_metadata import ImmunizationRecordMetadata
2727from repository .fhir_repository import ImmunizationRepository
2828from service .fhir_service import FhirService , get_service_url
2929from testing_utils .generic_utils import load_json_data
@@ -40,8 +40,9 @@ class TestFhirServiceBase(unittest.TestCase):
4040
4141 def setUp (self ):
4242 super ().setUp ()
43- self .redis_patcher = patch ("models.utils.validation_utils.redis_client" )
44- self .mock_redis_client = self .redis_patcher .start ()
43+ self .mock_redis = Mock ()
44+ self .redis_getter_patcher = patch ("common.models.utils.validation_utils.get_redis_client" )
45+ self .mock_redis_getter = self .redis_getter_patcher .start ()
4546 self .logger_info_patcher = patch ("logging.Logger.info" )
4647 self .mock_logger_info = self .logger_info_patcher .start ()
4748
@@ -99,7 +100,8 @@ def tearDown(self):
99100 def test_get_immunization_by_id (self ):
100101 """it should find an Immunization by id"""
101102 imms_id = "an-id"
102- self .mock_redis_client .hget .return_value = "COVID"
103+ self .mock_redis .hget .return_value = "COVID"
104+ self .mock_redis_getter .return_value = self .mock_redis
103105 self .authoriser .authorise .return_value = True
104106 self .imms_repo .get_immunization_and_resource_meta_by_id .return_value = (
105107 create_covid_immunization (imms_id ).dict (),
@@ -140,7 +142,8 @@ def test_get_immunization_by_id_patient_not_restricted(self):
140142 imms_id = "non_restricted_id"
141143
142144 immunization_data = load_json_data ("completed_covid_immunization_event.json" )
143- self .mock_redis_client .hget .return_value = "COVID"
145+ self .mock_redis .hget .return_value = "COVID"
146+ self .mock_redis_getter .return_value = self .mock_redis
144147 self .authoriser .authorise .return_value = True
145148 self .imms_repo .get_immunization_and_resource_meta_by_id .return_value = (
146149 immunization_data ,
@@ -162,7 +165,8 @@ def test_get_immunization_by_id_patient_not_restricted(self):
162165 def test_unauthorised_error_raised_when_user_lacks_permissions (self ):
163166 """it should throw an exception when user lacks permissions"""
164167 imms_id = "an-id"
165- self .mock_redis_client .hget .return_value = "COVID"
168+ self .mock_redis .hget .return_value = "COVID"
169+ self .mock_redis_getter .return_value = self .mock_redis
166170 self .authoriser .authorise .return_value = False
167171 self .imms_repo .get_immunization_and_resource_meta_by_id .return_value = (
168172 create_covid_immunization (imms_id ).dict (),
@@ -288,7 +292,8 @@ def setUp(self):
288292
289293 def test_create_immunization (self ):
290294 """it should create Immunization and validate it"""
291- self .mock_redis_client .hget .return_value = "COVID"
295+ self .mock_redis .hget .return_value = "COVID"
296+ self .mock_redis_getter .return_value = self .mock_redis
292297 self .authoriser .authorise .return_value = True
293298 self .imms_repo .check_immunization_identifier_exists .return_value = False
294299 self .imms_repo .create_immunization .return_value = self ._MOCK_NEW_UUID
@@ -338,7 +343,8 @@ def test_pre_validation_failed(self):
338343
339344 def test_post_validation_failed_create_invalid_target_disease (self ):
340345 """it should raise CustomValidationError for invalid target disease code on create"""
341- self .mock_redis_client .hget .return_value = None
346+ self .mock_redis .hget .return_value = None
347+ self .mock_redis_getter .return_value = self .mock_redis
342348 valid_imms = create_covid_immunization_dict_no_id (VALID_NHS_NUMBER )
343349
344350 bad_target_disease_imms = deepcopy (valid_imms )
@@ -358,7 +364,8 @@ def test_post_validation_failed_create_invalid_target_disease(self):
358364
359365 def test_post_validation_failed_create_missing_patient_name (self ):
360366 """it should raise CustomValidationError for missing patient name on create"""
361- self .mock_redis_client .hget .return_value = "COVID"
367+ self .mock_redis .hget .return_value = "COVID"
368+ self .mock_redis_getter .return_value = self .mock_redis
362369 valid_imms = create_covid_immunization_dict_no_id (VALID_NHS_NUMBER )
363370
364371 bad_patient_name_imms = deepcopy (valid_imms )
@@ -391,7 +398,8 @@ def test_patient_error(self):
391398
392399 def test_unauthorised_error_raised_when_user_lacks_permissions (self ):
393400 """it should raise error when user lacks permissions"""
394- self .mock_redis_client .hget .return_value = "COVID"
401+ self .mock_redis .hget .return_value = "COVID"
402+ self .mock_redis_getter .return_value = self .mock_redis
395403 self .authoriser .authorise .return_value = False
396404 self .imms_repo .create_immunization .return_value = create_covid_immunization_dict_no_id ()
397405
@@ -409,7 +417,8 @@ def test_unauthorised_error_raised_when_user_lacks_permissions(self):
409417
410418 def test_raises_duplicate_error_if_identifier_already_exits (self ):
411419 """it should raise a duplicate error if the immunisation identifier (system + local ID) already exists"""
412- self .mock_redis_client .hget .return_value = "COVID"
420+ self .mock_redis .hget .return_value = "COVID"
421+ self .mock_redis_getter .return_value = self .mock_redis
413422 self .authoriser .authorise .return_value = True
414423 self .imms_repo .check_immunization_identifier_exists .return_value = True
415424
@@ -441,7 +450,8 @@ def setUp(self):
441450 self .authoriser = create_autospec (Authoriser )
442451 self .imms_repo = create_autospec (ImmunizationRepository )
443452 self .fhir_service = FhirService (self .imms_repo , self .authoriser )
444- self .mock_redis_client .hget .return_value = "COVID"
453+ self .mock_redis .hget .return_value = "COVID"
454+ self .mock_redis_getter .return_value = self .mock_redis
445455
446456 def test_update_immunization (self ):
447457 """it should update Immunization and validate NHS number"""
@@ -588,7 +598,8 @@ def setUp(self):
588598 def test_delete_immunization (self ):
589599 """it should delete Immunization record"""
590600 imms = json .loads (create_covid_immunization (self .TEST_IMMUNISATION_ID ).json ())
591- self .mock_redis_client .hget .return_value = "COVID"
601+ self .mock_redis .hget .return_value = "COVID"
602+ self .mock_redis_getter .return_value = self .mock_redis
592603 self .authoriser .authorise .return_value = True
593604 self .imms_repo .get_immunization_and_resource_meta_by_id .return_value = (
594605 imms ,
@@ -621,7 +632,8 @@ def test_delete_immunization_throws_authorisation_exception_if_does_not_have_req
621632 ):
622633 """it should raise an UnauthorizedVaxError when the client does not have permissions for the given vacc type"""
623634 imms = json .loads (create_covid_immunization (self .TEST_IMMUNISATION_ID ).json ())
624- self .mock_redis_client .hget .return_value = "FLU"
635+ self .mock_redis .hget .return_value = "FLU"
636+ self .mock_redis_getter .return_value = self .mock_redis
625637 self .authoriser .authorise .return_value = False
626638 self .imms_repo .get_immunization_and_resource_meta_by_id .return_value = (
627639 imms ,
0 commit comments