def link_documents_bundles_with_journals( journal_path: str, issue_path: str, output_path: str ): """Busca pelo relacionamento entre periódicos e fascículos a partir de arquivos JSON extraídos de uma base MST. O resultado é escrito em um arquivo JSON contendo um objeto (dict) com identificadores de periócios como chaves e arrays de ids das issues que compõe o periódico""" journals_bundles = {} extract_isis.create_output_dir(output_path) journals_as_json = reading.read_json_file(journal_path) issues_as_json = reading.read_json_file(issue_path) journals = conversion.conversion_journals_to_kernel(journals_as_json) issues = conversion.conversion_issues_to_xylose(issues_as_json) issues = filter_issues(issues) for journal in journals: journals_bundles[journal["id"]] = find_documents_bundles(journal, issues) with open(output_path, "w") as output: output.write(json.dumps(journals_bundles, indent=4, sort_keys=True))
def test_should_not_find_bundles_for_journal(self): self.issue_json["v35"] = [{"_": "0001-3714X"}] issues = [Issue({"issue": self.issue_json})] journal_issues = find_documents_bundles(SAMPLE_KERNEL_JOURNAL, issues) self.assertListEqual([], journal_issues)
def test_should_link_journal_and_issues(self): issues = [Issue({"issue": self.issue_json})] journal_issues = find_documents_bundles(SAMPLE_KERNEL_JOURNAL, issues) self.assertEqual([SAMPLE_ISSUES_KERNEL[0]["id"]], journal_issues)