Example #1
0
def test_row_bib():
    # Vérifie que les métadonnées en entrée d'une notice BIB
    # sont bien récupérées
    record = funcs.Bib_record(
                                [
                                 "315756", "FRBNF435361100000003", "",
                                 "978-2-213-67203-8", "",
                                 "Mon Paris, ma mémoire", "Morin Edgar",
                                 "DL 2013", "", "Fayard"
                                ],
                                1
                              )
    record2 = funcs.Bib_record(
                                [
                                 "1/104953", "(moccam)frbnf43632681", 
                                 "", "978-2-7436-2583-2", "9782743625832", 
                                 "Faillir être flingué roman", "celine minard", 
                                 "2013(©)", "", "Payot   Rivages"
                                ],
                                1
                               )
    assert record.NumNot == "315756"
    assert record.frbnf.propre == "frbnf435361100000003"
    assert record.ark_init == ""
    assert record.isbn.init == "978-2-213-67203-8"
    assert record.ean.init == ""
    assert record.titre.init == "Mon Paris, ma mémoire"
    assert record.titre_nett == "monparismamemoire"
    assert record.auteur == "Morin Edgar"
    assert record.auteur_nett == "morin edgar"
    assert record.date_nett == "2013"
    assert record.publisher_nett == "fayard"
    assert record2.frbnf.propre == "frbnf43632681"
def test_domybiblio_1_answer():
    """
    Si une seule réponse de DoMyBiblio, l'API plante 
    et Bibliostratus parse alors la version HTML
    On vérifie que le PPN est correctement récupéré
    """
    record = funcs.Bib_record([
        "15108805", "", "", "", "",
        "Législation industrielle Licence 3ème année 1941/42", "amiaud andre",
        "1941", "", "Cours de droit"
    ], 1)
    param = {"preferences_alignement": 2}
    ppn = bib2id.tad2ppn(record, param)
    assert ppn == "PPN015108805" or ppn == ""
def test_alignement_bib():
    # Teste sur des notices bibliographiques
    # avec divers types de notices et d'options
    bib_records = {
        "TEX1": {
            "input_record":
            funcs.Bib_record([
                "315756", "", "", "978-2-213-67203-8", "",
                "Mon Paris, ma mémoire", "Morin Edgar", "DL 2013", "", "Fayard"
            ], 1)
        },
        "TEX2": {
            "input_record":
            funcs.Bib_record([
                "1/104953", "", "", "978-2-7436-2583-2", "9782743625832",
                "Faillir être flingué roman", "celine minard", "2013(©)", "",
                "Payot   Rivages"
            ], 1)
        },
        "AUD1": {
            "input_record":
            funcs.Bib_record([
                "754134", "", "", "", "3329184688321",
                "La grande nuit de l 'Opéra  1958",
                "maria georges mars callas jean-pierre paris lance choeur orchestre albert de national opera sebastian hurteau jacques",
                "2010", "Institut national de l'audiovisuel"
            ], 3)
        },
        "PER1": {
            "input_record":
            funcs.Bib_record([
                "616", "", "", "2267-8417",
                "Fisheye le magazine lifestyle de la photographie", "",
                "2013-", "Paris"
            ], 4)
        },
        "PER2": {
            "input_record":
            funcs.Bib_record([
                "629", "FRBNF391212190000007", "", "", "Arts magazine", "",
                "2005-2016 2006-2016", ""
            ], 4)
        }
    }
    param_alignBnF = {
        "preferences_alignement": 1,
        "kwsudoc_option": 1,
        "meta_bib": 0,
        "meta_bnf": 0,
        "stats": defaultdict(int)
    }
    param_alignSudoc = {
        "preferences_alignement": 2,
        "kwsudoc_option": 1,
        "meta_bib": 1,
        "meta_bnf": 0,
        "stats": defaultdict(int)
    }
    for record in bib_records:
        bib_records[record]["alignment_resultBnF"] = bib2id.item_alignement(
            bib_records[record]["input_record"], param_alignBnF)
        bib_records[record]["alignment_resultSudoc"] = bib2id.item_alignement(
            bib_records[record]["input_record"], param_alignSudoc)

    assert bib_records["TEX1"]["input_record"].alignment_method == [
        'ISBN + contrôle Titre 200$a', 'isbn2ppn + contrôle Titre 200$a'
    ]
    assert bib_records["TEX1"][
        "alignment_resultBnF"].alignment_method_str == "ISBN + contrôle Titre 200$a"
    assert bib_records["TEX1"][
        "alignment_resultBnF"].ids_str == "ark:/12148/cb43536110d"
    assert bib_records["TEX1"][
        "alignment_resultSudoc"].ids_str == "PPN168081768"
    assert bib_records["AUD1"][
        "alignment_resultBnF"].ids_str == "ark:/12148/cb423235808"
    assert bib_records["AUD1"][
        "alignment_resultSudoc"].ids_str == "ark:/12148/cb423235808"
    assert bib_records["PER1"][
        "alignment_resultBnF"].alignment_method_str == "ISSN"
    assert bib_records["PER1"][
        "alignment_resultBnF"].ids_str == "ark:/12148/cb43619642w"
    assert bib_records["PER1"][
        "alignment_resultSudoc"].ids_str == "PPN174256019"
    assert bib_records["PER2"][
        "alignment_resultBnF"].ids_str == "ark:/12148/cb39121219d"
    assert bib_records["PER2"][
        "alignment_resultBnF"].alignment_method_str == "Numéro de notice + contrôle Titre 200$a"
    assert bib_records["PER2"][
        "alignment_resultSudoc"].ids_str == "ark:/12148/cb39121219d"