diff options
Diffstat (limited to 'python/tests')
| -rw-r--r-- | python/tests/transform_csl.py | 20 | ||||
| -rw-r--r-- | python/tests/web_citation_csl.py | 46 | ||||
| -rw-r--r-- | python/tests/web_entity_views.py | 4 | ||||
| -rw-r--r-- | python/tests/web_search.py | 4 | 
4 files changed, 58 insertions, 16 deletions
| diff --git a/python/tests/transform_csl.py b/python/tests/transform_csl.py index 6f29cba7..15c64ce5 100644 --- a/python/tests/transform_csl.py +++ b/python/tests/transform_csl.py @@ -12,22 +12,22 @@ def test_csl_crossref(crossref_importer):          # not a single line          raw = json.loads(f.read())          r = crossref_importer.parse_record(raw) -    # this work has some null contrib names; these should cause errors -    with pytest.raises(ValueError): -        release_to_csl(r) -    with pytest.raises(ValueError): -        csl = release_to_csl(r) -        citeproc_csl(csl, 'csl-json') -    # set with dummy so we can run other tests -    for c in r.contribs: -        if not c.raw_name: -            c.raw_name = "dummy"      csl = release_to_csl(r)      citeproc_csl(csl, 'csl-json')      citeproc_csl(csl, 'bibtex')      citeproc_csl(csl, 'harvard1')      citeproc_csl(csl, 'harvard1', html=True) +    # check that with no author surnames, can't run +    for c in r.contribs: +        c.raw_name = None +        c.surname = None +    with pytest.raises(ValueError): +        release_to_csl(r) +    with pytest.raises(ValueError): +        csl = release_to_csl(r) +        citeproc_csl(csl, 'csl-json') +  def test_csl_pubmed(crossref_importer):      with open('tests/files/example_releases_pubmed19n0972.json', 'r') as f:          # multiple single lines diff --git a/python/tests/web_citation_csl.py b/python/tests/web_citation_csl.py index 3279ebea..e016b2d9 100644 --- a/python/tests/web_citation_csl.py +++ b/python/tests/web_citation_csl.py @@ -6,7 +6,7 @@ from fatcat_openapi_client.rest import ApiException  from fixtures import * -def test_release_bibtex(app): +def test_release_bibtex(app, api):      # "realistic" demo entity      rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaam') @@ -17,6 +17,8 @@ def test_release_bibtex(app):      assert b'@article{' in rv.data      rv = app.get('/release/ccccccccccccccccccccccccca.bib')      assert rv.status_code == 404 +    rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaam/citeproc?style=bibtex') +    assert rv.status_code == 200      rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaam/citeproc?style=csl-json')      assert rv.status_code == 200      # could also rv.get_json() here @@ -25,10 +27,48 @@ def test_release_bibtex(app):      assert rv.status_code == 200      assert rv.data.decode('utf-8').startswith('Ioannidis, John. “Why Most Published Research Findings Are False”. 2.8 (2005)') -    # "dummy" demo entity +    # "dummy" demo entity; very minimal metadata      rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai')      assert rv.status_code == 200 +    assert b'BibTeX' in rv.data +    rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai.bib') +    assert rv.status_code == 200 +    rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai/citeproc?style=modern-language-association') +    assert rv.status_code == 200 +    rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai/citeproc?style=csl-json') +    assert rv.status_code == 200 + +    # create release which can not have citeproc run on it (no authors) +    eg = quick_eg(api) +    r1 = ReleaseEntity( +        title="some title", +        ext_ids=ReleaseExtIds(), +    ) +    r1edit = api.create_release(eg.editgroup_id, r1) +    api.accept_editgroup(eg.editgroup_id) + +    rv = app.get('/release/{}'.format(r1edit.ident)) +    assert rv.status_code == 200      assert not b'BibTeX' in rv.data      with pytest.raises(ValueError): -        rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai.bib') +        rv = app.get('/release/{}.bib'.format(r1edit.ident)) + +    # create release can have citeproc run on it (no authors) +    eg = quick_eg(api) +    r2 = ReleaseEntity( +        title="some title again", +        contribs=[ +            ReleaseContrib( +                given_name="Paul", +                surname="Otlet"), +        ], +        ext_ids=ReleaseExtIds(), +    ) +    r2edit = api.create_release(eg.editgroup_id, r2) +    api.accept_editgroup(eg.editgroup_id) +    rv = app.get('/release/{}'.format(r2edit.ident)) +    assert rv.status_code == 200 +    assert b'BibTeX' in rv.data +    rv = app.get('/release/{}.bib'.format(r2edit.ident)) +    assert rv.status_code == 200 diff --git a/python/tests/web_entity_views.py b/python/tests/web_entity_views.py index 23a2b33b..a3f0f897 100644 --- a/python/tests/web_entity_views.py +++ b/python/tests/web_entity_views.py @@ -42,6 +42,8 @@ def test_entity_basics(app):          assert rv.status_code == 200          rv = app.get('/{}/rev/{}'.format(entity_type, revision))          assert rv.status_code == 200 +        rv = app.get('/{}/rev/{}_something'.format(entity_type, revision)) +        assert rv.status_code == 400          rv = app.get('/{}/rev/{}/metadata'.format(entity_type, revision))          assert rv.status_code == 200          print('/editgroup/aaaaaaaaaaaabo53aaaaaaaaaq/{}/{}'.format(entity_type, ident)) @@ -63,7 +65,7 @@ def test_entity_basics(app):          # TODO: redirects and deleted entities  def test_web_deleted_release(app, api): -    # specific regresion test for view of a deleted release +    # specific regression test for view of a deleted release      # create release      eg = quick_eg(api) diff --git a/python/tests/web_search.py b/python/tests/web_search.py index 19e2c29f..24b817dc 100644 --- a/python/tests/web_search.py +++ b/python/tests/web_search.py @@ -75,7 +75,7 @@ def test_stats(app):          json=elastic_resp3.copy(), status=200)      rv = app.get('/stats')      assert rv.status_code == 200 -    # TODO: probe these reponses better +    # TODO: robe these responses better  @responses.activate  def test_stats_json(app): @@ -112,7 +112,7 @@ def test_container_stats(app):          json=elastic_resp, status=200)      rv = app.get('/container/issnl/1234-5678/stats.json')      assert rv.status_code == 200 -    # TODO: probe this reponse better +    # TODO: probe this response better  # TODO: container stats  # TODO: container ISSN-L query | 
