Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)