summaryrefslogtreecommitdiffstats
path: root/tests/test_transform.py
blob: fd14533a3bfef131bb20ab5964c6947d8059fc30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import json

from fatcat_openapi_client import ReleaseEntity

from fatcat_scholar.api_entities import entity_from_json
from fatcat_scholar.schema import ScholarBiblio
from fatcat_scholar.transform import (
    biblio_metadata_hacks,
    es_biblio_from_release,
    es_release_from_release,
    run_refs,
    run_transform,
)


def test_es_release_from_release() -> None:

    with open("tests/files/release_hsmo6p4smrganpb3fndaj2lon4.json", "r") as f:
        release = entity_from_json(f.read(), ReleaseEntity)

    obj = es_release_from_release(release)
    d = json.loads(obj.json())

    assert obj.ident == release.ident == d["ident"] == "hsmo6p4smrganpb3fndaj2lon4"
    assert obj.doi_registrar == "crossref"
    assert obj.doi_prefix == "10.7717"


def test_es_biblio_from_release() -> None:

    with open("tests/files/release_hsmo6p4smrganpb3fndaj2lon4.json", "r") as f:
        release = entity_from_json(f.read(), ReleaseEntity)

    obj = es_biblio_from_release(release)
    d = json.loads(obj.json())

    assert (
        obj.release_ident
        == release.ident
        == d["release_ident"]
        == "hsmo6p4smrganpb3fndaj2lon4"
    )


def test_run_refs() -> None:

    with open("tests/files/work_iarm6swodra2bcrzhxrfaah7py_bundle.json", "r") as f:
        run_refs(f.readlines())


def test_run_transform() -> None:

    with open("tests/files/work_iarm6swodra2bcrzhxrfaah7py_bundle.json", "r") as f:
        run_transform(f.readlines())

    with open("tests/files/sim_page_bundle.json", "r") as f:
        run_transform(f.readlines())


def test_biblio_metadata_hacks() -> None:
    biblio = ScholarBiblio(
        title="some example paper",
        contrib_names=["able seaperson"],
        release_year=2000,
        volume="10",
        issue="5",
        publisher="some university",
        issns=[],
        affiliations=[],
    )
    out = biblio_metadata_hacks(biblio)

    biblio.release_year = 2030
    out = biblio_metadata_hacks(biblio)
    assert out.release_year is None

    biblio.doi_prefix = "10.1101"
    biblio.container_name = None
    biblio.release_stage = None
    biblio.release_type = "post"
    out = biblio_metadata_hacks(biblio)
    assert out.container_name
    assert out.release_stage == "submitted"
    assert out.release_type == "article"