def test_issue_has_supplement_when_supplement_volume_is_not_none(self):
        self.issue_json["v131"] = [{"_": "3"}]
        self.issue = issue_to_kernel(self._issue)
        self.assertEqual([["2019-01-29T00:00:00.000000Z", "3"]],
                         self.issue["metadata"]["supplement"])

        self.assertIn("s3", self.issue["id"])
Exemplo n.º 2
0
 def test_issue_has_titles(self):
     self.issue_json["v33"] = [{"l": "pt", "_": "Algum título"}]
     self.issue = issue_to_kernel(self._issue)
     self.assertEqual(
         [{"language": "pt", "value": "Algum título"}],
         self.issue["metadata"]["titles"],
     )
Exemplo n.º 3
0
 def test_issue_has_number_returns(self):
     issue_json = self.issue_json.copy()
     issue_json["v32"] = [{"_": "ahead"}]
     issue = Issue({"issue": issue_json})
     _issue = issue_to_kernel(issue)
     self.assertEqual("ahead", issue.number)
     self.assertEqual("2448-167X-aop", _issue["id"])
Exemplo n.º 4
0
    def test_issue_has_supplement_when_supplement_volume_is_not_none(self):
        self.issue_json["v31"] = [{"_": "4"}]
        self.issue_json["v131"] = [{"_": "3"}]
        self.issue = issue_to_kernel(self._issue)
        self.assertEqual("3", self.issue["metadata"]["supplement"])

        self.assertIn("s3", self.issue["id"])
Exemplo n.º 5
0
 def test_publication_season_range_of_six_months(self):
     self.issue_json["v43"] = [{"m": "Jan./Jun."}]
     self.issue = issue_to_kernel(self._issue)
     self.assertEqual(
         [["2019-01-29T00:00:00.000000Z", [1, 6]]],
         self.issue["metadata"]["publication_season"],
     )
Exemplo n.º 6
0
 def test_publication_season_start_and_end_is_equal(self):
     self.issue_json["v43"] = [{"m": "Feb./Feb."}]
     self.issue = issue_to_kernel(self._issue)
     self.assertEqual(
         [["2019-01-29T00:00:00.000000Z", [2]]],
         self.issue["metadata"]["publication_season"],
     )
Exemplo n.º 7
0
    def test_issue_has_supplement_when_supplement_number_is_not_none(self):
        self.issue_json["v32"] = [{"_": "4"}]
        self.issue_json["v132"] = [{"_": "2"}]
        self.issue = issue_to_kernel(self._issue)
        self.assertEqual("2", self.issue["metadata"]["supplement"])

        self.assertIn("s2", self.issue["id"])
        self.assertIn("s2", self.issue["_id"])
Exemplo n.º 8
0
    def test_issue_has_number(self):
        self.assertIsNone(self.issue["metadata"].get("volume"))
        self.issue_json["v32"] = [{"_": "1"}]
        self.issue = issue_to_kernel(self._issue)

        self.assertEqual("1", self.issue["metadata"]["number"])

        self.assertIn("n1", self.issue["id"])
Exemplo n.º 9
0
    def test_issue_has_volume(self):
        self.issue_json["v31"] = [{"_": "21"}]
        self.issue = issue_to_kernel(self._issue)

        self.assertEqual("21", self.issue["metadata"]["volume"])

        self.assertIn("v21", self.issue["id"])
        self.assertIn("v21", self.issue["_id"])
    def test_issue_has_volume(self):
        self.issue_json["v31"] = [{"_": "21"}]
        self.issue = issue_to_kernel(self._issue)

        self.assertEqual([["2019-01-29T00:00:00.000000Z", "21"]],
                         self.issue["metadata"]["volume"])

        self.assertIn("v21", self.issue["id"])
        self.assertIn("v21", self.issue["_id"])
    def setUp(self):
        self.issue_json = {
            "v65": [{
                "_": "20190129"
            }],
            "v35": [{
                "_": "2448-167X"
            }]
        }

        self._issue = Issue({"issue": self.issue_json})
        self.issue = issue_to_kernel(self._issue)
Exemplo n.º 12
0
def link_documents_bundles_with_journals(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)
    issues_as_json = reading.read_json_file(issue_path)
    issues = conversion.conversion_issues_to_xylose(issues_as_json)
    issues = filter_issues(issues)

    for issue in issues:
        journal_id = issue.data["issue"]["v35"][0]["_"]
        journals_bundles.setdefault(journal_id, [])
        _issue_id = issue_to_kernel(issue)["_id"]

        exist_item = len(
            list(
                filter(lambda d: d["id"] == _issue_id,
                       journals_bundles[journal_id])))

        if not exist_item:
            _creation_date = parse_date(issue.publication_date)

            _supplement = ""
            if issue.type is "supplement":
                _supplement = "0"

                if issue.supplement_volume:
                    _supplement = issue.supplement_volume
                elif issue.supplement_number:
                    _supplement = issue.supplement_number

            journals_bundles[journal_id].append({
                "id":
                _issue_id,
                "order":
                issue.order,
                "number":
                issue.number,
                "volume":
                issue.volume,
                "year":
                str(date_to_datetime(_creation_date).year),
                "supplement":
                _supplement,
            })

    with open(output_path, "w") as output:
        output.write(json.dumps(journals_bundles, indent=4, sort_keys=True))
Exemplo n.º 13
0
def conversion_issues_to_kernel(issues: List[Issue]) -> List[dict]:
    """Converte uma lista de issues em formato xylose para uma lista
    de issues em formato Kernel"""

    return [xylose_converter.issue_to_kernel(issue) for issue in issues]
Exemplo n.º 14
0
 def test_publication_months_range_of_six_months(self):
     self.issue_json["v43"] = [{"m": "Jan./Jun."}]
     self.issue = issue_to_kernel(self._issue)
     self.assertEqual(
         {"range": (1, 6)}, self.issue["metadata"]["publication_months"]
     )
Exemplo n.º 15
0
 def test_publication_months_start_and_end_is_equal(self):
     self.issue_json["v43"] = [{"m": "Feb./Feb."}]
     self.issue = issue_to_kernel(self._issue)
     self.assertEqual(
         {"range": (2, 2)}, self.issue["metadata"]["publication_months"],
     )
Exemplo n.º 16
0
 def test_issue_has_year_in_id_because_it_is_not_aop(self):
     self.issue_json["v31"] = [{"_": "21"}]
     self._issue = Issue({"issue": self.issue_json})
     self.issue = issue_to_kernel(self._issue)
     self.assertIn("2019", self.issue["id"])
     self.assertIn("2019", self.issue["_id"])