Esempio n. 1
0
 def test_update_invalid_deleted_parent(self):
     metadata_standard1 = ckanext_factories.MetadataStandard()
     metadata_standard2 = ckanext_factories.MetadataStandard()
     call_action('metadata_standard_delete', id=metadata_standard1['id'])
     result, obj = self.test_action(
         'metadata_standard_update',
         should_error=True,
         id=metadata_standard2['id'],
         parent_standard_id=metadata_standard1['id'])
     assert_error(result, 'parent_standard_id',
                  'Not found: Metadata Standard')
Esempio n. 2
0
 def test_update_invalid_duplicate_name(self):
     metadata_standard1 = ckanext_factories.MetadataStandard()
     metadata_standard2 = ckanext_factories.MetadataStandard()
     input_dict = {
         'id': metadata_standard1['id'],
         'name': metadata_standard2['name'],
     }
     result, obj = self.test_action('metadata_standard_update',
                                    should_error=True,
                                    **input_dict)
     assert_error(result, 'name', 'Duplicate name: Metadata Standard')
Esempio n. 3
0
 def test_update_invalid_duplicate(self):
     metadata_standard1 = ckanext_factories.MetadataStandard()
     metadata_standard2 = ckanext_factories.MetadataStandard()
     input_dict = {
         'id': metadata_standard1['id'],
         'standard_name': metadata_standard2['standard_name'],
         'standard_version': metadata_standard2['standard_version'],
     }
     result, obj = self.test_action('metadata_standard_update',
                                    should_error=True,
                                    **input_dict)
     assert_error(result, '__after', 'Unique constraint violation')
Esempio n. 4
0
 def test_update_valid_change_parent_1(self):
     metadata_standard1 = ckanext_factories.MetadataStandard()
     metadata_standard2 = ckanext_factories.MetadataStandard()
     input_dict = {
         'id': metadata_standard1['id'],
         'standard_name': metadata_standard1['standard_name'],
         'standard_version': metadata_standard1['standard_version'],
         'parent_standard_id': metadata_standard2['id'],
         'metadata_template_json': '{}',
     }
     result, obj = self.test_action('metadata_standard_update',
                                    **input_dict)
     assert_object_matches_dict(obj, input_dict)
Esempio n. 5
0
 def test_update_invalid_circular_ref_1(self):
     metadata_standard1 = ckanext_factories.MetadataStandard()
     metadata_standard2 = ckanext_factories.MetadataStandard(
         parent_standard_id=metadata_standard1['id'])
     input_dict = {
         'id': metadata_standard1['id'],
         'parent_standard_id': metadata_standard2['id'],
     }
     result, obj = self.test_action('metadata_standard_update',
                                    should_error=True,
                                    **input_dict)
     assert_error(result, 'parent_standard_id',
                  'Loop in metadata standard hierarchy')
Esempio n. 6
0
    def test_delete_with_child_standards(self):
        metadata_standard1 = ckanext_factories.MetadataStandard()
        metadata_standard2 = ckanext_factories.MetadataStandard(
            parent_standard_id=metadata_standard1['id'])
        assert metadata_standard2['parent_standard_id'] == metadata_standard1[
            'id']

        self.test_action('metadata_standard_delete',
                         id=metadata_standard1['id'])
        metadata_standard2['parent_standard_id'] = None
        del metadata_standard2['revision_id']
        del metadata_standard2['display_name']
        assert_object_matches_dict(ckanext_model.MetadataStandard.get(
            metadata_standard2['id']),
                                   metadata_standard2,
                                   json_values=('metadata_template_json', ))
Esempio n. 7
0
 def test_update_invalid_missing_values(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     result, obj = self.test_action('metadata_standard_update',
                                    should_error=True,
                                    id=metadata_standard['id'],
                                    standard_name='',
                                    metadata_template_json='')
     assert_error(result, 'standard_name', 'Missing value')
Esempio n. 8
0
 def test_update_invalid_bad_parent(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     result, obj = self.test_action('metadata_standard_update',
                                    should_error=True,
                                    id=metadata_standard['id'],
                                    parent_standard_id='foo')
     assert_error(result, 'parent_standard_id',
                  'Not found: Metadata Standard')
Esempio n. 9
0
 def test_update_invalid_missing_params(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     result, obj = self.test_action('metadata_standard_update',
                                    should_error=True,
                                    id=metadata_standard['id'])
     assert_error(result, 'standard_name', 'Missing parameter')
     assert_error(result, 'standard_version', 'Missing parameter')
     assert_error(result, 'parent_standard_id', 'Missing parameter')
     assert_error(result, 'metadata_template_json', 'Missing parameter')
 def test_create_invalid_deleted_metadata_standard(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     call_action('metadata_standard_delete', id=metadata_standard['id'])
     result, obj = self.test_action(
         'metadata_json_attr_map_create',
         should_error=True,
         metadata_standard_id=metadata_standard['id'])
     assert_error(result, 'metadata_standard_id',
                  'Not found: Metadata Standard')
Esempio n. 11
0
 def test_create_valid_datacite(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     input_dict = {
         'metadata_standard_id': metadata_standard['id'],
         'organization_id': '',
         'infrastructure_id': '',
         'schema_json': load_example('saeon_odp_4.2_schema.json'),
     }
     result, obj = self.test_action('metadata_schema_create', **input_dict)
     assert_object_matches_dict(obj, input_dict)
Esempio n. 12
0
 def test_create_valid_same_version_different_name(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     input_dict = {
         'standard_name': metadata_standard['standard_name'] + '_foo',
         'standard_version': metadata_standard['standard_version'],
         'parent_standard_id': '',
         'metadata_template_json': '{}',
     }
     result, obj = self.test_action('metadata_standard_create',
                                    **input_dict)
     assert_object_matches_dict(obj, input_dict)
Esempio n. 13
0
 def test_update_invalid_self_parent(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     input_dict = {
         'id': metadata_standard['id'],
         'parent_standard_id': metadata_standard['id'],
     }
     result, obj = self.test_action('metadata_standard_update',
                                    should_error=True,
                                    **input_dict)
     assert_error(result, 'parent_standard_id',
                  'Loop in metadata standard hierarchy')
Esempio n. 14
0
 def test_create_valid_with_parent(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     input_dict = {
         'standard_name': 'DataCite',
         'standard_version': '1.0',
         'parent_standard_id': metadata_standard['id'],
         'metadata_template_json': '{}',
     }
     result, obj = self.test_action('metadata_standard_create',
                                    **input_dict)
     assert_object_matches_dict(obj, input_dict)
Esempio n. 15
0
 def test_create_valid_setname(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     input_dict = {
         'name': 'test-metadata-schema',
         'metadata_standard_id': metadata_standard['id'],
         'organization_id': '',
         'infrastructure_id': '',
         'schema_json': '{ "testkey": "testvalue" }',
     }
     result, obj = self.test_action('metadata_schema_create', **input_dict)
     assert_object_matches_dict(obj, input_dict)
 def test_create_invalid_json_path(self):
     metadata_standard = ckanext_factories.MetadataStandard(
         metadata_template_json=load_example('saeon_odp_4.2_record.json'))
     result, obj = self.test_action(
         'metadata_json_attr_map_create',
         should_error=True,
         metadata_standard_id=metadata_standard['id'],
         json_path='/identifier/foo')
     assert_error(
         result, '__after',
         'The supplied JSON path is not valid for the metadata template of the supplied metadata standard'
     )
 def test_create_valid(self):
     metadata_standard = ckanext_factories.MetadataStandard(
         metadata_template_json=load_example('saeon_odp_4.2_record.json'))
     input_dict = {
         'json_path': '/identifier/identifier',
         'record_attr': 'name',
         'is_key': True,
         'metadata_standard_id': metadata_standard['id'],
     }
     result, obj = self.test_action('metadata_json_attr_map_create',
                                    **input_dict)
     assert_object_matches_dict(obj, input_dict)
Esempio n. 18
0
 def test_create_valid(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     input_dict = {
         'description': 'This is a test metadata schema',
         'metadata_standard_id': metadata_standard['id'],
         'organization_id': '',
         'infrastructure_id': '',
         'schema_json': '{ "testkey": "testvalue" }',
     }
     result, obj = self.test_action('metadata_schema_create', **input_dict)
     assert_object_matches_dict(obj, input_dict)
     assert obj.name == generate_name(metadata_standard['name'], '', '')
Esempio n. 19
0
 def test_create_valid_same_infrastructure_different_standard(self):
     infrastructure = ckanext_factories.Infrastructure()
     metadata_schema = ckanext_factories.MetadataSchema(
         infrastructure_id=infrastructure['id'])
     metadata_standard = ckanext_factories.MetadataStandard()
     input_dict = {
         'metadata_standard_id': metadata_standard['id'],
         'organization_id': '',
         'infrastructure_id': metadata_schema['infrastructure_id'],
         'schema_json': '{}',
     }
     result, obj = self.test_action('metadata_schema_create', **input_dict)
     assert_object_matches_dict(obj, input_dict)
Esempio n. 20
0
 def test_create_no_invalidate_records_different_standard(self):
     """
     Create a schema with a different standard to that of an existing validated metadata record.
     This should not invalidate the record.
     """
     metadata_record, _, _ = self._generate_and_validate_metadata_record()
     call_action(
         'metadata_schema_create',
         metadata_standard_id=ckanext_factories.MetadataStandard()['id'],
         organization_id='',
         infrastructure_id='',
         schema_json='{}')
     assert_package_has_extra(metadata_record['id'], 'validated', True)
Esempio n. 21
0
 def test_update_valid_partial(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     input_dict = {
         'id': metadata_standard['id'],
         'name': 'updated-test-metadata-standard',
         'standard_name': metadata_standard['standard_name'],
         'standard_version': metadata_standard['standard_name'],
         'parent_standard_id': '',
         'metadata_template_json': '{}',
     }
     result, obj = self.test_action('metadata_standard_update',
                                    **input_dict)
     assert_object_matches_dict(obj, input_dict)
     assert obj.description == metadata_standard['description']
Esempio n. 22
0
 def test_create_valid_with_infrastructure_byname(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     infrastructure = ckanext_factories.Infrastructure()
     input_dict = {
         'metadata_standard_id': metadata_standard['name'],
         'organization_id': '',
         'infrastructure_id': infrastructure['name'],
         'schema_json': '{}',
     }
     result, obj = self.test_action('metadata_schema_create', **input_dict)
     assert obj.metadata_standard_id == metadata_standard['id']
     assert obj.organization_id is None
     assert obj.infrastructure_id == infrastructure['id']
     assert obj.name == generate_name(metadata_standard['name'], '',
                                      infrastructure['name'])
Esempio n. 23
0
 def test_update_valid(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     input_dict = {
         'id': metadata_standard['id'],
         'description': 'Updated test metadata standard description',
         'standard_name': 'Updated Standard Name',
         'standard_version': 'v99',
         'parent_standard_id': '',
         'metadata_template_json': '{ "newtestkey": "newtestvalue" }',
     }
     result, obj = self.test_action('metadata_standard_update',
                                    **input_dict)
     assert_object_matches_dict(obj, input_dict)
     assert obj.name == generate_name(input_dict['standard_name'],
                                      input_dict['standard_version'])
Esempio n. 24
0
    def test_create_invalid_deleted_references(self):
        metadata_standard = ckanext_factories.MetadataStandard()
        organization = ckan_factories.Organization()
        infrastructure = ckanext_factories.Infrastructure()
        call_action('metadata_standard_delete', id=metadata_standard['id'])
        call_action('organization_delete', id=organization['id'])
        call_action('infrastructure_delete', id=infrastructure['id'])

        result, obj = self.test_action(
            'metadata_schema_create',
            should_error=True,
            metadata_standard_id=metadata_standard['id'],
            organization_id=organization['id'],
            infrastructure_id=infrastructure['id'])
        assert_error(result, 'metadata_standard_id',
                     'Not found: Metadata Standard')
        assert_error(result, 'organization_id', 'Not found: Organization')
        assert_error(result, 'infrastructure_id', 'Not found: Infrastructure')
Esempio n. 25
0
    def test_delete_with_dependencies(self):
        metadata_standard = ckanext_factories.MetadataStandard()
        metadata_schema = ckanext_factories.MetadataSchema(
            metadata_standard_id=metadata_standard['id'])
        metadata_record = ckanext_factories.MetadataRecord(
            metadata_standard_id=metadata_standard['id'])

        result, obj = self.test_action('metadata_standard_delete',
                                       should_error=True,
                                       id=metadata_standard['id'])

        assert_error(result, 'message',
                     'Metadata standard has dependent metadata records')
        assert ckanext_model.MetadataSchema.get(
            metadata_schema['id']).state == 'active'

        call_action('metadata_record_delete', id=metadata_record['id'])
        self.test_action('metadata_standard_delete',
                         id=metadata_standard['id'])
        assert ckanext_model.MetadataSchema.get(
            metadata_schema['id']).state == 'deleted'
Esempio n. 26
0
 def test_create_invalid_duplicate_name(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     result, obj = self.test_action('metadata_standard_create',
                                    should_error=True,
                                    name=metadata_standard['name'])
     assert_error(result, 'name', 'Duplicate name: Metadata Standard')
Esempio n. 27
0
 def test_delete_valid(self):
     metadata_standard = ckanext_factories.MetadataStandard()
     self.test_action('metadata_standard_delete',
                      id=metadata_standard['id'])