From a85de0b6e82c65d932c84a41b284083b4879934a Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Thu, 24 Jan 2019 16:16:22 -0800 Subject: tweak crossref import, and update tests --- python/tests/files/crossref-works.single.json | 24 +++++++++++++++--- python/tests/import_crossref.py | 35 ++++++++++++++++++--------- 2 files changed, 44 insertions(+), 15 deletions(-) (limited to 'python/tests') diff --git a/python/tests/files/crossref-works.single.json b/python/tests/files/crossref-works.single.json index e3d2e05c..f00c2142 100644 --- a/python/tests/files/crossref-works.single.json +++ b/python/tests/files/crossref-works.single.json @@ -36,6 +36,10 @@ }, "delay-in-days": 6452, "content-version": "tdm" + }, + { + "URL": "http://creativecommons.org/licenses/by-nc-nd/3.0/", + "content-version": "vor" } ], "content-domain": { @@ -71,7 +75,11 @@ "source": "Crossref", "is-referenced-by-count": 5, "title": [ - "Renormalized perturbation theory by the moment method for degenerate states: Anharmonic oscillators" + "Renormalized perturbation theory by the moment method for degenerate states: Anharmonic oscillators", + "some other title" + ], + "original-title": [ + "Renormalized perturbation theory auf deutsch" ], "prefix": "10.1002", "volume": "66", @@ -79,7 +87,8 @@ { "given": "Marcelo D.", "family": "Radicioni", - "affiliation": [] + "affiliation": [], + "sequence": "first" }, { "given": "Carlos G.", @@ -90,6 +99,11 @@ "given": "Francisco M.", "family": "Fern�ndez", "affiliation": [] + }, + { + "given": "", + "family": "", + "affiliation": [] } ], "editor": [ @@ -108,6 +122,7 @@ ], "member": "311", "ISBN": ["85-359-0277-5", "978-3-16-148410-0"], + "archive": ["Portico", "LOCKSS"], "reference": [ { "key": "10.1002/(SICI)1097-461X(1998)66:4<261::AID-QUA1>3.0.CO;2-T-BIB1", @@ -115,6 +130,7 @@ "volume": "57", "first-page": "1734", "year": "1972", + "medium": "DVD", "journal-title": "J. Chem. Phys.", "DOI": "10.1063/1.1678462", "doi-asserted-by": "crossref" @@ -131,11 +147,11 @@ }, { "key": "10.1002/(SICI)1097-461X(1998)66:4<261::AID-QUA1>3.0.CO;2-T-BIB3", - "author": "Fernández", + "author": "", "volume": "43", "year": "1987", "unstructured": "and Hypervirial Theorems, Lecture Notes in Chemistry, Vol. 43, (Springer, Berlin, 1987).", - "volume-title": "Hypervirial Theorems, Lecture Notes in Chemistry", + "volume-title": "Hypervirial Theorem’s, Lecture Notes in Chemistry <3", "DOI": "10.1007/978-3-642-93349-3", "doi-asserted-by": "crossref" }, diff --git a/python/tests/import_crossref.py b/python/tests/import_crossref.py index 6e7f72c5..cb2143b3 100644 --- a/python/tests/import_crossref.py +++ b/python/tests/import_crossref.py @@ -70,34 +70,47 @@ def test_crossref_dict_parse(crossref_importer): # not a single line raw = json.loads(f.read()) r = crossref_importer.parse_record(raw) - extra = r.extra['crossref'] + # ensure the API server is ok with format + JsonLinePusher(crossref_importer, [json.dumps(raw)]).run() + + print(r.extra) assert r.title == "Renormalized perturbation theory by the moment method for degenerate states: Anharmonic oscillators" assert r.doi == "10.1002/(sici)1097-461x(1998)66:4<261::aid-qua1>3.0.co;2-t" assert r.publisher == "Wiley-Blackwell" - print(extra) - assert extra['container-title'] == ["International Journal of Quantum Chemistry"] assert r.release_type == "article-journal" assert r.release_status == "published" + assert r.license_slug == "CC-BY-NC-ND" + assert r.original_title == "Renormalized perturbation theory auf deutsch" assert r.isbn13 == "978-3-16-148410-0" - assert 'subtitle' not in extra - assert 'archive' not in extra - assert 'funder' not in extra - assert len(r.contribs) == 5 + assert 'subtitle' not in r.extra + assert 'subtitle' not in r.extra['crossref'] + assert 'funder' not in r.extra + assert 'funder' not in r.extra['crossref'] + # matched by ISSN, so shouldn't be in there + #assert extra['container_name'] == "International Journal of Quantum Chemistry" + assert r.extra['aliases'] == ["some other title"] + assert r.extra['crossref']['archive'] == ['Portico', 'LOCKSS'] + assert len(r.contribs) == 6 assert r.contribs[0].raw_name == "Marcelo D. Radicioni" assert r.contribs[0].index == 0 + assert r.contribs[0].extra['seq'] == "first" assert r.contribs[1].raw_affiliation == "Some University" assert r.contribs[1].extra['more_affiliations'] == ["Some Department"] assert r.contribs[1].role == "author" - assert r.contribs[3].role == "editor" - assert r.contribs[3].index is None - assert r.contribs[4].role == "translator" + assert r.contribs[4].role == "editor" assert r.contribs[4].index is None + assert r.contribs[4].extra is None + assert r.contribs[5].role == "translator" + assert r.contribs[5].index is None assert len(r.refs) == 25 assert r.refs[0].key == "BIB1" assert r.refs[0].year == 1972 assert r.refs[0].locator == "1734" assert r.refs[0].container_name == "J. Chem. Phys." - assert r.refs[0].extra['crossref'] == {"volume": "57", "author": "Swenson", "doi": "10.1063/1.1678462"} + assert r.refs[0].extra == {"volume": "57", "author": "Swenson", "doi": "10.1063/1.1678462", "medium": "DVD"} + assert r.refs[2].key == 'BIB3' + assert r.refs[2].extra.get('author') is None + assert r.refs[2].container_name == "Hypervirial Theorem's, Lecture Notes in Chemistry <3" assert r.refs[3].container_name == "Large Order Perturbation Theory and Summation Methods in Quantum Mechanics, Lecture Notes in Chemistry" def test_stateful_checking(crossref_importer_existing): -- cgit v1.2.3