Esempio n. 1
0
 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)
Esempio n. 2
0
    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)
Esempio n. 4
0
    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)