def test_any_bundle_id_for_issn_year_volume_suppl(self): self.assertEqual( scielo_ids_generator.any_bundle_id("ISSN", "YEAR", "VOLUME", supplement="SUPPL"), "ISSN-YEAR-vVOLUME-sSUPPL", )
def issue_to_kernel(issue): """Transforma um objeto Issue (xylose) para o formato de dados equivalente ao persistido pelo Kernel em um banco mongodb""" issn_id = issue.data["issue"]["v35"][0]["_"] _creation_date = parse_date(issue.publication_date) _metadata = {} _bundle = { "created": _creation_date, "updated": _creation_date, "items": [], "metadata": _metadata, } _year = str(date_to_datetime(_creation_date).year) _month = str(date_to_datetime(_creation_date).month) _metadata["publication_year"] = _year if issue.volume: _metadata["volume"] = issue.volume if issue.number: _metadata["number"] = issue.number _supplement = None if issue.type is "supplement": _supplement = "0" if issue.supplement_volume: _supplement = issue.supplement_volume elif issue.supplement_number: _supplement = issue.supplement_number _metadata["supplement"] = _supplement if issue.titles: _titles = [ {"language": lang, "value": value} for lang, value in issue.titles.items() ] _metadata["titles"] = _titles publication_months = {} if issue.start_month and issue.end_month: publication_months["range"] = (int(issue.start_month), int(issue.end_month)) elif _month: publication_months["month"] = int(_month) _metadata["publication_months"] = publication_months _id = scielo_ids_generator.any_bundle_id( issn_id, _year, issue.volume, issue.number, _supplement ) _bundle["_id"] = _id _bundle["id"] = _id return _bundle
def test_any_bundle_id_returns_ISSN_YEAR_NUM_and_no_vol_because_it_is_00( self): self.assertEqual( scielo_ids_generator.any_bundle_id("ISSN", "YEAR", volume="00", number="19"), "ISSN-YEAR-n19", )
def get_bundle_id(issn_id: str, doc_info: dict) -> None: """Obtém o bundle ID através dos dados presentes em `doc_info`, utilizando funções do módulo scielo_ids_generator. `issn_id`: ISSN ID do Periódico `doc_info`: dados de um registro do arquivo JSON resultado da importação Returns: str: ID do bundle de fascículo ou do bundle AOP """ return scielo_ids_generator.any_bundle_id( issn_id, doc_info.get("year"), doc_info.get("volume"), doc_info.get("number"), doc_info.get("supplement"), )
def get_bundle_info(issn, document): """ Obtém e retorna os dados do `bundle`: ID e se é um fascículo Args: issn (str): ISSN document (dict): Dados do documento Returns: tuple (bool, str): True para é fascículoID do `bundle` de fascículo ou aop """ bundle_id = scielo_ids_generator.any_bundle_id( issn, document.get("year"), document.get("volume"), document.get("number"), document.get("supplement"), ) aops_bundle_id = scielo_ids_generator.aops_bundle_id(issn) is_issue = bundle_id != aops_bundle_id return is_issue, bundle_id
def test_any_bundle_id_returns_aops_bundle_id(self): self.assertEqual( scielo_ids_generator.any_bundle_id("ISSN", "YEAR", volume="00", number="00"), "ISSN-aop")
def test_any_bundle_id_for_issn_year_number(self): self.assertEqual( scielo_ids_generator.any_bundle_id("ISSN", "YEAR", number="03"), "ISSN-YEAR-n3", )
def test_any_bundle_id_for_issn_year_volume(self): self.assertEqual( scielo_ids_generator.any_bundle_id("ISSN", "YEAR", "VOLUME"), "ISSN-YEAR-vVOLUME", )