def test_create_and_save_contexts(self): for key in self.input: mapping = prepare_input(self.input[key]["schema_url"], key) output_directory = os.path.join(os.path.dirname(__file__), "../data/contexts") context = create_and_save_contexts(mapping, self.base, output_directory) self.assertTrue(context)
def test_create_context_network(self): for key in self.input: mapping = prepare_input(self.input[key]["schema_url"], key) create_network_context(mapping, self.base)
def test_create_and_save_contexts(self): expected_output = { "application_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } }, "array_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } }, "miaca_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } }, "project_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } }, "source_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } } } self.mock_request_patcher = patch('utils.schema2context.requests.get') self.mock_request = self.mock_request_patcher.start() self.mock_request.return_value.status_code = 200 self.mock_makedir_patcher = patch('os.makedirs') self.mock_makedir = self.mock_makedir_patcher.start() self.mock_makedir.return_value = True with patch('builtins.open', new_callable=mock_open()): self.mock_json_load_patcher = patch( 'utils.schema2context.json.loads') self.mock_json_load = self.mock_json_load_patcher.start() self.mock_json_load.return_value = { "id": "https://w3id.org/dats/schema/person_schema.json", "properties": {} } self.mock_resolver_patcher = patch( 'utils.schema2context.resolve_network') self.mock_resolver = self.mock_resolver_patcher.start() self.mock_resolver.return_value = { "application_schema": { "id": "https://w3id.org/mircat/miaca/schema/application_schema.json" }, "array_schema": { "id": "https://w3id.org/mircat/miaca/schema/array_schema.json" }, "miaca_schema": { "id": "https://fairsharing.github.io/mircat/miaca/schema/miaca_schema.json" }, "project_schema": { "id": "https://fairsharing.github.io/mircat/miaca/schema/project_schema.json" }, "source_schema": { "id": "https://fairsharing.github.io/mircat/miaca/schema/source_schema.json" } } mapping = prepare_input( "https://w3id.org/dats/schema/person_schema.json", "DATS") output_directory = os.path.join(os.path.dirname(__file__), "../data/contexts") contexts = create_and_save_contexts(mapping, self.base, output_directory) with self.assertRaises(Exception) as context: create_and_save_contexts(mapping, self.base, [output_directory]) self.assertTrue("Please provide a valid path to your directory" in context.exception) self.mock_request_patcher.stop() self.mock_makedir_patcher.stop() self.mock_json_load_patcher.stop() self.mock_resolver_patcher.stop() self.assertTrue(contexts == expected_output)
def test_prepare_input(self): self.mock_resolver_patcher = patch( 'utils.schema2context.resolve_network') self.mock_resolver = self.mock_resolver_patcher.start() self.mock_resolver.return_value = { "person_schema.json": { "id": "https://w3id.org/dats/schema/person_schema.json" }, "identifier_info_schema.json": { "id": "https://w3id.org/dats/schema/identifier_info_schema.json" }, "alternate_identifier_info_schema.json": { "id": "https://w3id.org/dats/schema/alternate_identifier_info_schema.json" }, "related_identifier_info_schema.json": { "id": "https://w3id.org/dats/schema/related_identifier_info_schema.json" }, "organization_schema.json": { "id": "https://w3id.org/dats/schema/organization_schema.json" }, "annotation_schema.json": { "id": "https://w3id.org/dats/schema/annotation_schema.json" }, "category_values_pair_schema.json": { "id": "https://w3id.org/dats/schema/category_values_pair_schema.json" } } network_name = "DATS" expected_output = { "networkName": "DATS", "schemas": { "person_schema.json": "https://w3id.org/dats/schema/person_schema.json", "identifier_info_schema.json": "https://w3id.org/dats/schema/identifier_info_schema.json", "alternate_identifier_info_schema.json": "https://w3id.org/dats/schema/alternate_identifier_info_schema.json", "related_identifier_info_schema.json": "https://w3id.org/dats/schema/related_identifier_info_schema.json", "organization_schema.json": "https://w3id.org/dats/schema/organization_schema.json", "annotation_schema.json": "https://w3id.org/dats/schema/annotation_schema.json", "category_values_pair_schema.json": "https://w3id.org/dats/schema/category_values_pair_schema.json" } } url = "https://w3id.org/dats/schema/person_schema.json" mapping_variable = prepare_input(url, network_name) self.assertTrue(mapping_variable == expected_output) self.mock_resolver_patcher.stop() second_url = "test123" with self.assertRaises(Exception) as context: prepare_input(second_url, network_name) self.assertTrue( "Error with one or more schemas" in context.exception)
def test_create_network_context(self): expected_output = { "application_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } }, "array_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } }, "miaca_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } }, "project_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } }, "source_schema": { "sdo": { "@context": { "sdo": "https://schema.org", "Person": "sdo:", "@language": "en" } }, "obo": { "@context": { "obo": "http://purl.obolibrary.org/obo/", "Person": "obo:", "@language": "en" } } } } self.mock_request_patcher = patch('utils.schema2context.requests.get') self.mock_request = self.mock_request_patcher.start() self.mock_request.return_value.status_code = 200 self.mock_makedir_patcher = patch('os.makedirs') self.mock_makedir = self.mock_makedir_patcher.start() self.mock_makedir.return_value = True with patch('builtins.open', new_callable=mock_open()): self.mock_json_load_patcher = patch( 'utils.schema2context.json.loads') self.mock_json_load = self.mock_json_load_patcher.start() self.mock_json_load.return_value = { "id": "https://w3id.org/dats/schema/person_schema.json", "properties": {} } self.mock_resolver_patcher = patch( 'utils.schema2context.resolve_network') self.mock_resolver = self.mock_resolver_patcher.start() self.mock_resolver.return_value = { "application_schema": { "id": "https://w3id.org/mircat/miaca/schema/application_schema.json" }, "array_schema": { "id": "https://w3id.org/mircat/miaca/schema/array_schema.json" }, "miaca_schema": { "id": "https://fairsharing.github.io/mircat/miaca/schema/miaca_schema.json" }, "project_schema": { "id": "https://fairsharing.github.io/mircat/miaca/schema/project_schema.json" }, "source_schema": { "id": "https://fairsharing.github.io/mircat/miaca/schema/source_schema.json" } } mapping = prepare_input( "https://w3id.org/dats/schema/person_schema.json", "DATS") contexts = create_network_context(mapping, self.base) self.mock_request_patcher.stop() self.mock_makedir_patcher.stop() self.mock_json_load_patcher.stop() self.mock_resolver_patcher.stop() self.assertTrue(contexts == expected_output)