def test_update_metadata_records_private_cascade_2(self): """ Test that the visibility of a metadata record is determined by that of its workflow state. """ metadata_record = ckanext_factories.MetadataRecord() workflow_state = ckanext_factories.WorkflowState( metadata_records_private=True) call_action('metadata_record_workflow_state_override', context={'user': self.normal_user['name']}, id=metadata_record['id'], workflow_state_id=workflow_state['id']) assert_package_has_extra(metadata_record['id'], 'workflow_state_id', workflow_state['id']) assert_package_has_attribute(metadata_record['id'], 'private', True) input_dict = { 'id': workflow_state['id'], 'revert_state_id': '', 'metadata_records_private': False, 'workflow_rules_json': '{}', } result, obj = self.test_action('workflow_state_update', **input_dict) assert_object_matches_dict(obj, input_dict) assert_package_has_extra(metadata_record['id'], 'workflow_state_id', workflow_state['id']) assert_package_has_attribute(metadata_record['id'], 'private', False)
def test_create_valid_initial_transition(self): workflow_state = ckanext_factories.WorkflowState() input_dict = { 'from_state_id': '', 'to_state_id': workflow_state['id'], } result, obj = self.test_action('workflow_transition_create', **input_dict) assert_object_matches_dict(obj, input_dict)
def test_create_valid(self): input_dict = { 'name': 'test-workflow-annotation', 'attributes': '{ "attr1": "string", "attr2": "number", "attr3": "boolean" }', } result, obj = self.test_action('workflow_annotation_create', **input_dict) assert_object_matches_dict(obj, input_dict)
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)
def test_create_valid_with_revert(self): workflow_state = ckanext_factories.WorkflowState() input_dict = { 'name': 'test-workflow-state', 'revert_state_id': workflow_state['id'], 'metadata_records_private': False, 'workflow_rules_json': '{ "testkey": "testvalue" }', } result, obj = self.test_action('workflow_state_create', **input_dict) assert_object_matches_dict(obj, input_dict)
def test_create_valid(self): input_dict = { 'name': 'test-infrastructure', 'title': 'Test Infrastructure', 'description': 'This is a test infrastructure', } result, obj = self.test_action('infrastructure_create', **input_dict) assert obj.type == 'infrastructure' assert obj.is_organization == False assert_object_matches_dict(obj, input_dict)
def test_create_valid(self): input_dict = { 'name': 'test-organization', 'title': 'Test Organization', 'description': 'This is a test organization', } result, obj = self.test_action('organization_create', **input_dict) assert obj.type == 'organization' assert obj.is_organization == True assert_object_matches_dict(obj, input_dict)
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_valid_setname(self): input_dict = { 'name': 'test-metadata-standard', 'standard_name': 'DataCite', 'standard_version': '1.0', 'parent_standard_id': '', 'metadata_template_json': '{}', } result, obj = self.test_action('metadata_standard_create', **input_dict) assert_object_matches_dict(obj, input_dict)
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)
def test_create_valid(self): input_dict = { 'name': 'test-workflow-state', 'title': 'Test Workflow State', 'description': 'This is a test workflow state', 'revert_state_id': '', 'metadata_records_private': True, 'workflow_rules_json': '{ "testkey": "testvalue" }', } result, obj = self.test_action('workflow_state_create', **input_dict) assert_object_matches_dict(obj, input_dict)
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)
def test_update_valid(self): metadata_json_attr_map = ckanext_factories.MetadataJSONAttrMap() input_dict = { 'id': metadata_json_attr_map['id'], 'json_path': '/c/d', 'record_attr': 'notes', 'is_key': False, } result, obj = self.test_action('metadata_json_attr_map_update', **input_dict) assert_object_matches_dict(obj, input_dict)
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)
def test_update_valid(self): infrastructure = self._generate_infrastructure() input_dict = { 'id': infrastructure['id'], 'name': 'updated-test-infrastructure', 'title': 'Updated Test Infrastructure', 'description': 'Updated test infrastructure', } result, obj = self.test_action('infrastructure_update', **input_dict) assert obj.type == 'infrastructure' assert obj.is_organization == False assert_object_matches_dict(obj, input_dict)
def test_update_valid_change_revert_1(self): workflow_state1 = ckanext_factories.WorkflowState() workflow_state2 = ckanext_factories.WorkflowState() input_dict = { 'id': workflow_state1['id'], 'name': workflow_state1['name'], 'revert_state_id': workflow_state2['id'], 'metadata_records_private': True, 'workflow_rules_json': '{}', } result, obj = self.test_action('workflow_state_update', **input_dict) assert_object_matches_dict(obj, input_dict)
def test_update_valid_partial(self): workflow_annotation = ckanext_factories.WorkflowAnnotation() input_dict = { 'id': workflow_annotation['id'], 'attributes': '{ "attr1": "string", "attr2": "number", "attr3": "boolean" }', } result, obj = self.test_action('workflow_annotation_update', **input_dict) assert_object_matches_dict(obj, input_dict) assert obj.name == workflow_annotation['name']
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'], '', '')
def test_update_valid_partial(self): metadata_schema = ckanext_factories.MetadataSchema() input_dict = { 'id': metadata_schema['id'], 'name': 'updated-test-metadata-schema', 'metadata_standard_id': metadata_schema['metadata_standard_id'], 'organization_id': '', 'infrastructure_id': '', 'schema_json': '{ "testkey": "newtestvalue" }', } result, obj = self.test_action('metadata_schema_update', **input_dict) assert_object_matches_dict(obj, input_dict) assert obj.description == metadata_schema['description']
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)
def test_create_valid(self): input_dict = { 'description': 'This is a test metadata standard', 'standard_name': 'DataCite', 'standard_version': '1.0', 'parent_standard_id': '', 'metadata_template_json': '{ "testkey": "testvalue" }', } result, obj = self.test_action('metadata_standard_create', **input_dict) assert_object_matches_dict(obj, input_dict) assert obj.name == generate_name(input_dict['standard_name'], input_dict['standard_version'])
def test_update_valid(self): workflow_state = ckanext_factories.WorkflowState() input_dict = { 'id': workflow_state['id'], 'name': 'updated-test-workflow-state', 'title': 'Updated Test Workflow State', 'description': 'Updated test workflow state description', 'revert_state_id': '', 'metadata_records_private': False, 'workflow_rules_json': '{ "testkey": "newtestvalue" }', } result, obj = self.test_action('workflow_state_update', **input_dict) assert_object_matches_dict(obj, input_dict)
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)
def test_create_valid_same_standard_different_organization(self): organization1 = ckan_factories.Organization() organization2 = ckan_factories.Organization() metadata_schema = ckanext_factories.MetadataSchema( organization_id=organization1['id']) input_dict = { 'metadata_standard_id': metadata_schema['metadata_standard_id'], 'organization_id': organization2['id'], 'infrastructure_id': '', 'schema_json': '{}', } result, obj = self.test_action('metadata_schema_create', **input_dict) assert_object_matches_dict(obj, input_dict)
def test_delete_with_revert_references(self): workflow_state1 = ckanext_factories.WorkflowState() workflow_state2 = ckanext_factories.WorkflowState( revert_state_id=workflow_state1['name']) assert workflow_state2['revert_state_id'] == workflow_state1['id'] self.test_action('workflow_state_delete', id=workflow_state1['id']) workflow_state2['revert_state_id'] = None del workflow_state2['revision_id'] del workflow_state2['display_name'] assert_object_matches_dict(ckanext_model.WorkflowState.get( workflow_state2['id']), workflow_state2, json_values=('workflow_rules_json', ))
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']
def test_create_valid_byname(self): workflow_state1 = ckanext_factories.WorkflowState() workflow_state2 = ckanext_factories.WorkflowState() input_dict = { 'from_state_id': workflow_state1['name'], 'to_state_id': workflow_state2['name'], } result, obj = self.test_action('workflow_transition_create', **input_dict) input_dict = { 'from_state_id': workflow_state1['id'], 'to_state_id': workflow_state2['id'], } assert_object_matches_dict(obj, input_dict)
def test_update_valid(self): infrastructure1 = self._generate_infrastructure() infrastructure2 = self._generate_infrastructure() metadata_collection = ckanext_factories.MetadataCollection( infrastructures=[{ 'id': infrastructure1['id'] }, { 'id': infrastructure2['id'] }]) new_infrastructure = self._generate_infrastructure() input_dict = { 'id': metadata_collection['id'], 'name': 'updated-test-metadata-collection', 'title': 'Updated Test Metadata Collection', 'description': 'Updated test metadata collection', 'organization_id': metadata_collection['organization_id'], 'doi_collection': 'updated.test.doi', 'infrastructures': [ { 'id': infrastructure2['name'] }, { 'id': new_infrastructure['name'] }, ], } result, obj = self.test_action('metadata_collection_update', **input_dict) assert obj.type == 'metadata_collection' assert obj.is_organization == False del input_dict['organization_id'] del input_dict['doi_collection'] del input_dict['infrastructures'] assert_object_matches_dict(obj, input_dict) assert_group_has_extra(obj.id, 'organization_id', metadata_collection['organization_id']) assert_group_has_extra(obj.id, 'doi_collection', 'UPDATED.TEST.DOI') assert_group_has_member(infrastructure1['id'], obj.id, 'group', state='deleted') assert_group_has_member(infrastructure2['id'], obj.id, 'group') assert_group_has_member(new_infrastructure['id'], obj.id, 'group')
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'])
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', ))