def test_get_target_validation_schema(self): """Test to retrieve source validation schema from XIA configuration """ with patch('openlxp_xia.models.XIAConfiguration.field_overwrite'): xiaConfig = XIAConfiguration( target_metadata_schema='p2881_target_validation_schema.json') xiaConfig.save() result_dict = get_target_validation_schema() expected_dict = \ read_json_data('p2881_target_validation_schema.json') self.assertEqual(expected_dict, result_dict)
def test_rename_metadata_ledger_fields(self): """Test for Renaming XIA column names to match with XIS column names""" with patch('openlxp_xia.models.XIAConfiguration.field_overwrite'): xiaConfig = XIAConfiguration(publisher='AGENT') xiaConfig.save() return_data = rename_metadata_ledger_fields(self.xia_data) self.assertEquals(self.xis_expected_data['metadata_hash'], return_data['metadata_hash']) self.assertEquals(self.xis_expected_data['metadata_key'], return_data['metadata_key']) self.assertEquals(self.xis_expected_data['metadata_key_hash'], return_data['metadata_key_hash']) self.assertEquals(self.xis_expected_data['provider_name'], return_data['provider_name'])
def test_post_data_to_xis_zero(self): """Test for POSTing XIA metadata_ledger to XIS metadata_ledger when data is not present""" data = [] with patch('openlxp_xia.management.commands' '.load_target_metadata.rename_metadata_ledger_fields', return_value=self.xis_expected_data), \ patch('openlxp_xia.management.utils.xia_internal' '.get_publisher_detail'), \ patch('openlxp_xia.management.utils.xia_internal' '.XIAConfiguration.objects') as xiaCfg, \ patch('openlxp_xia.management.commands.load_target_metadata.' 'MetadataLedger.objects') as meta_obj, \ patch('requests.post') as response_obj, \ patch( 'openlxp_xia.management.commands.' 'load_target_metadata' '.get_records_to_load_into_xis', return_value=None) as mock_check_records_to_load: xiaConfig = XIAConfiguration(publisher='AGENT') xiaCfg.first.return_value = xiaConfig response_obj.return_value = response_obj response_obj.status_code = 201 meta_obj.return_value = meta_obj meta_obj.exclude.return_value = meta_obj meta_obj.update.return_value = meta_obj meta_obj.filter.side_effect = [meta_obj, meta_obj, meta_obj, meta_obj] post_data_to_xis(data) self.assertEqual(response_obj.call_count, 0) self.assertEqual(mock_check_records_to_load.call_count, 1)
def test_post_data_to_xis_response_201(self): """POSTing XIA metadata_ledger to XIS metadata_ledger and receive response status code 201""" with patch('openlxp_xia.models.XIAConfiguration.field_overwrite'): metadata_ledger = MetadataLedger( record_lifecycle_status='Active', source_metadata=self.source_metadata, target_metadata=self.target_metadata, target_metadata_hash=self.target_hash_value, target_metadata_key_hash=self.target_key_value_hash, target_metadata_key=self.target_key_value, source_metadata_transformation_date=timezone.now(), target_metadata_validation_status='Y', source_metadata_validation_status='Y', target_metadata_transmission_status='Ready') metadata_ledger.save() input_data = MetadataLedger.objects.filter( record_lifecycle_status='Active', target_metadata_validation_status='Y', target_metadata_transmission_status='Ready').values( 'metadata_record_uuid', 'target_metadata', 'target_metadata_hash', 'target_metadata_key', 'target_metadata_key_hash') xiaConfig = XIAConfiguration(publisher='AGENT') xiaConfig.save() xisConfig = XISConfiguration( xis_metadata_api_endpoint=self.xis_api_endpoint_url) xisConfig.save() with patch('requests.post') as response_obj: response_obj.return_value = response_obj response_obj.status_code = 201 post_data_to_xis(input_data) result_query = MetadataLedger.objects.values( 'target_metadata_transmission_status_code', 'target_metadata_transmission_status').filter( target_metadata_key=self.target_key_value).first() self.assertEqual( 201, result_query.get( 'target_metadata_transmission_status_code')) self.assertEqual( 'Successful', result_query.get('target_metadata_transmission_status'))
def test_create_two_xia_configuration(self): """Test that trying to create more than one XIS Configuration throws ValidationError """ with patch("openlxp_xia.models.XIAConfiguration.field_overwrite"): with self.assertRaises(ValidationError): xiaConfig = \ XIAConfiguration(source_metadata_schema="example1.json", source_target_mapping="example1.json", target_metadata_schema="example1.json") xiaConfig2 = \ XIAConfiguration(source_metadata_schema="example2.json", source_target_mapping="example2.json", target_metadata_schema="example2.json") xiaConfig.save() xiaConfig2.save()
def test_rename_metadata_ledger_fields(self): """Test for Renaming XIA column names to match with XIS column names""" with patch('openlxp_xia.management.utils.xia_internal' '.get_publisher_detail'), \ patch('openlxp_xia.management.utils.xia_internal' '.XIAConfiguration.objects') as xisCfg: xiaConfig = XIAConfiguration(publisher='AGENT') xisCfg.first.return_value = xiaConfig return_data = rename_metadata_ledger_fields(self.xia_data) self.assertEquals(self.xis_expected_data['metadata_hash'], return_data['metadata_hash']) self.assertEquals(self.xis_expected_data['metadata_key'], return_data['metadata_key']) self.assertEquals(self.xis_expected_data['metadata_key_hash'], return_data['metadata_key_hash']) self.assertEquals(self.xis_expected_data['provider_name'], return_data['provider_name'])
def test_create_xia_configuration(self): """Test that creating a new XIA Configuration entry is successful with defaults """ source_metadata_schema = 'test_file.json' source_target_mapping = 'test_file.json' target_metadata_schema = 'test_file.json' xiaConfig = XIAConfiguration( source_metadata_schema=source_metadata_schema, source_target_mapping=source_target_mapping, target_metadata_schema=target_metadata_schema) self.assertEqual(xiaConfig.source_metadata_schema, source_metadata_schema) self.assertEqual(xiaConfig.source_target_mapping, source_target_mapping) self.assertEqual(xiaConfig.target_metadata_schema, target_metadata_schema)