diff options
| author | Bryan Newbold <bnewbold@robocracy.org> | 2018-05-28 13:22:41 -0700 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-05-28 13:22:41 -0700 | 
| commit | c5bd3231df17fda2130e3bd51188dbe34628321a (patch) | |
| tree | 10adab8b356ec82308240379085483aff94e226e /python/tests | |
| parent | af542d66d884bd17daa6f40f3556aa4189b23b36 (diff) | |
| download | fatcat-c5bd3231df17fda2130e3bd51188dbe34628321a.tar.gz fatcat-c5bd3231df17fda2130e3bd51188dbe34628321a.zip | |
start refactoring pythong code
Diffstat (limited to 'python/tests')
| -rw-r--r-- | python/tests/api.py | 308 | ||||
| -rw-r--r-- | python/tests/codegen_tests/__init__.py (renamed from python/tests/fatcat_client/__init__.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_changelogentries.py (renamed from python/tests/fatcat_client/test_changelogentries.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_changelogentries_inner.py (renamed from python/tests/fatcat_client/test_changelogentries_inner.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_container_entity.py (renamed from python/tests/fatcat_client/test_container_entity.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_creator_entity.py (renamed from python/tests/fatcat_client/test_creator_entity.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_default_api.py (renamed from python/tests/fatcat_client/test_default_api.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_editgroup.py (renamed from python/tests/fatcat_client/test_editgroup.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_editgroup_edits.py (renamed from python/tests/fatcat_client/test_editgroup_edits.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_editor.py (renamed from python/tests/fatcat_client/test_editor.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_entity_edit.py (renamed from python/tests/fatcat_client/test_entity_edit.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_error_response.py (renamed from python/tests/fatcat_client/test_error_response.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_file_entity.py (renamed from python/tests/fatcat_client/test_file_entity.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_release_contrib.py (renamed from python/tests/fatcat_client/test_release_contrib.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_release_entity.py (renamed from python/tests/fatcat_client/test_release_entity.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_release_ref.py (renamed from python/tests/fatcat_client/test_release_ref.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_success.py (renamed from python/tests/fatcat_client/test_success.py) | 0 | ||||
| -rw-r--r-- | python/tests/codegen_tests/test_work_entity.py (renamed from python/tests/fatcat_client/test_work_entity.py) | 0 | ||||
| -rw-r--r-- | python/tests/entity_lifecycle.py | 80 | ||||
| -rw-r--r-- | python/tests/fixtures.py | 108 | ||||
| -rw-r--r-- | python/tests/models.py | 87 | ||||
| -rw-r--r-- | python/tests/routes.py | 10 | ||||
| -rw-r--r-- | python/tests/test_fixtures.py | 29 | 
23 files changed, 2 insertions, 620 deletions
| diff --git a/python/tests/api.py b/python/tests/api.py deleted file mode 100644 index 02875f64..00000000 --- a/python/tests/api.py +++ /dev/null @@ -1,308 +0,0 @@ - -import json -import unittest -import tempfile -import pytest -import fatcat -import fatcat.sql -from fatcat.models import * -from fixtures import * - - -def test_health(app): -    rv = app.get('/health') -    obj = json.loads(rv.data.decode('utf-8')) -    assert obj['ok'] - -def test_api_work(app): -    fatcat.dummy.insert_example_works() - -    # Invalid Id -    rv = app.get('/v0/work/_') -    assert rv.status_code == 404 - -    # Random -    rv = app.get('/v0/work/random') -    rv = app.get(rv.location) -    work = json.loads(rv.data.decode('utf-8')) -    check_entity_fields(work) -    print(work) -    assert work['title'] -    assert work['work_type'] - -    # Valid Id (from random above) -    rv = app.get('/v0/work/{}'.format(work['id'])) -    assert rv.status_code == 200 - -    # Missing Id -    rv = app.get('/v0/work/r3zga5b9cd7ef8gh084714iljk') -    assert rv.status_code == 404 - -def test_api_work_create(app): -    assert WorkIdent.query.count() == 0 -    assert WorkRev.query.count() == 0 -    assert WorkEdit.query.count() == 0 -    rv = app.post('/v0/work', -        data=json.dumps(dict(title="dummy", work_type="thing", extra=dict(a=1, b="zing"))), -        headers={"content-type": "application/json"}) -    print(rv) -    assert rv.status_code == 200 -    assert WorkIdent.query.count() == 1 -    assert WorkRev.query.count() == 1 -    assert WorkEdit.query.count() == 1 -    # not alive yet -    assert WorkIdent.query.filter(WorkIdent.is_live==True).count() == 0 - -def test_api_rich_create(app): - -    # TODO: create user? - -    rv = app.post('/v0/editgroup', -        data=json.dumps(dict( -            extra=dict(q=1, u="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    editgroup_id = obj['id'] - -    for cls in (WorkIdent, WorkRev, WorkEdit, -                ContainerIdent, ContainerRev, ContainerEdit, -                CreatorIdent, CreatorRev, CreatorEdit, -                ReleaseIdent, ReleaseRev, ReleaseEdit, -                FileIdent, FileRev, FileEdit, -                ChangelogEntry): -        assert cls.query.count() == 0 - -    rv = app.post('/v0/container', -        data=json.dumps(dict( -            name="schmournal", -            publisher="society of authors", -            issn="2222-3333", -            editgroup=editgroup_id, -            extra=dict(a=2, i="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    container_id = obj['id'] - -    rv = app.post('/v0/creator', -        data=json.dumps(dict( -            name="anon y. mouse", -            orcid="0000-0002-1825-0097", -            editgroup=editgroup_id, -            extra=dict(w=1, q="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    creator_id = obj['id'] - -    rv = app.post('/v0/work', -        data=json.dumps(dict( -            title="dummy work", -            work_type="book", -            editgroup=editgroup_id, -            extra=dict(a=3, b="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    work_id = obj['id'] - -    # this stub work will be referenced -    rv = app.post('/v0/release', -        data=json.dumps(dict( -            title="derivative work", -            work_type="journal-article", -            work=work_id, -            creators=[creator_id], -            doi="10.1234/58", -            editgroup=editgroup_id, -            refs=[ -                dict(stub="some other journal article"), -            ], -            extra=dict(f=7, b="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    stub_release_id = obj['id'] - -    rv = app.post('/v0/release', -        data=json.dumps(dict( -            title="dummy work", -            work_type="book", -            work=work_id, -            container=container_id, -            creators=[creator_id], -            doi="10.1234/5678", -            editgroup=editgroup_id, -            refs=[ -                dict(stub="some book", target=stub_release_id), -            ], -            extra=dict(f=7, b="loopy"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    release_id = obj['id'] - -    rv = app.post('/v0/file', -        data=json.dumps(dict( -            sha1="deadbeefdeadbeef", -            size=1234, -            releases=[release_id], -            editgroup=editgroup_id, -            extra=dict(f=4, b="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    file_id = obj['id'] - -    for cls in (WorkIdent, WorkRev, WorkEdit, -                ContainerIdent, ContainerRev, ContainerEdit, -                CreatorIdent, CreatorRev, CreatorEdit, -                FileIdent, FileRev, FileEdit): -        assert cls.query.count() == 1 -    for cls in (ReleaseIdent, ReleaseRev, ReleaseEdit): -        assert cls.query.count() == 2 - -    for cls in (WorkIdent, -                ContainerIdent, -                CreatorIdent, -                ReleaseIdent, -                FileIdent): -        assert cls.query.filter(cls.is_live==True).count() == 0 - -    assert ChangelogEntry.query.count() == 0 -    rv = app.post('/v0/editgroup/{}/accept'.format(editgroup_id), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    assert ChangelogEntry.query.count() == 1 - -    for cls in (WorkIdent, WorkRev, WorkEdit, -                ContainerIdent, ContainerRev, ContainerEdit, -                CreatorIdent, CreatorRev, CreatorEdit, -                FileIdent, FileRev, FileEdit): -        assert cls.query.count() == 1 -    for cls in (ReleaseIdent, ReleaseRev, ReleaseEdit): -        assert cls.query.count() == 2 - -    for cls in (WorkIdent, -                ContainerIdent, -                CreatorIdent, -                FileIdent): -        assert cls.query.filter(cls.is_live==True).count() == 1 -    assert ReleaseIdent.query.filter(ReleaseIdent.is_live==True).count() == 2 - -    # Test that foreign key relations worked -    release_rv = json.loads(app.get('/v0/release/{}'.format(release_id)).data.decode('utf-8')) -    print(release_rv) -    assert release_rv['creators'][0]['creator'] == creator_id -    assert release_rv['container']['id'] == container_id -    assert release_rv['work']['id'] == work_id -    assert release_rv['refs'][0]['target'] == stub_release_id - -    file_rv = json.loads(app.get('/v0/file/{}'.format(file_id)).data.decode('utf-8')) -    print(file_rv) -    assert file_rv['releases'][0]['release'] == release_id - -    # test that editor's active edit group is now invalid -    editor = Editor.query.first() -    assert editor.active_editgroup is None - -def test_api_release_lookup(rich_app): -    app = rich_app - -    rv = app.get('/v0/release/1', -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) - -    rv = app.get('/v0/release/lookup', -        data=json.dumps(dict(doi="10.1234/5678")), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    assert obj['doi'] == "10.1234/5678" -    assert obj.get('id') != None - -    rv = app.get('/v0/release/lookup', -        data=json.dumps(dict(doi="10.1234/5678_noexit")), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 404 - -    rv = app.get('/v0/release/lookup', -        data=json.dumps(dict(doi="not_even_valid_doi")), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 400 - -def test_api_creator_lookup(rich_app): -    app = rich_app - -    rv = app.get('/v0/creator/1', -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) - -    rv = app.get('/v0/creator/lookup', -        data=json.dumps(dict(orcid="0000-0002-1825-0097")), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    assert obj['orcid'] == "0000-0002-1825-0097" -    assert obj.get('id') != None - -    rv = app.get('/v0/creator/lookup', -        data=json.dumps(dict(orcid="0000-0002-1825-0098")), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 404 - -    rv = app.get('/v0/creator/lookup', -        data=json.dumps(dict(orcid="not_even_valid_orcid")), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 400 - - -def test_api_container_lookup(rich_app): -    app = rich_app - -    rv = app.get('/v0/container/1', -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) - -    rv = app.get('/v0/container/lookup', -        data=json.dumps(dict(issn="2222-3333")), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    assert obj['issn'] == "2222-3333" -    assert obj.get('id') != None - -    rv = app.get('/v0/container/lookup', -        data=json.dumps(dict(issn="2222-3334")), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 404 - -    rv = app.get('/v0/container/lookup', -        data=json.dumps(dict(issn="not_even_valid_issn")), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 400 - -def test_api_editor_get(rich_app): -    app = rich_app - -    rv = app.get('/v0/editor/admin', -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    print(obj) -    assert obj['username'] == "admin" -    assert obj['id'] == 1 - -def test_api_editor_changelog(rich_app): -    app = rich_app - -    rv = app.get('/v0/editor/admin/changelog', -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    print(obj) -    assert len(obj) == 1 diff --git a/python/tests/fatcat_client/__init__.py b/python/tests/codegen_tests/__init__.py index e69de29b..e69de29b 100644 --- a/python/tests/fatcat_client/__init__.py +++ b/python/tests/codegen_tests/__init__.py diff --git a/python/tests/fatcat_client/test_changelogentries.py b/python/tests/codegen_tests/test_changelogentries.py index 3b2bc885..3b2bc885 100644 --- a/python/tests/fatcat_client/test_changelogentries.py +++ b/python/tests/codegen_tests/test_changelogentries.py diff --git a/python/tests/fatcat_client/test_changelogentries_inner.py b/python/tests/codegen_tests/test_changelogentries_inner.py index ac836714..ac836714 100644 --- a/python/tests/fatcat_client/test_changelogentries_inner.py +++ b/python/tests/codegen_tests/test_changelogentries_inner.py diff --git a/python/tests/fatcat_client/test_container_entity.py b/python/tests/codegen_tests/test_container_entity.py index 0bafb7dd..0bafb7dd 100644 --- a/python/tests/fatcat_client/test_container_entity.py +++ b/python/tests/codegen_tests/test_container_entity.py diff --git a/python/tests/fatcat_client/test_creator_entity.py b/python/tests/codegen_tests/test_creator_entity.py index b235b640..b235b640 100644 --- a/python/tests/fatcat_client/test_creator_entity.py +++ b/python/tests/codegen_tests/test_creator_entity.py diff --git a/python/tests/fatcat_client/test_default_api.py b/python/tests/codegen_tests/test_default_api.py index cda38f38..cda38f38 100644 --- a/python/tests/fatcat_client/test_default_api.py +++ b/python/tests/codegen_tests/test_default_api.py diff --git a/python/tests/fatcat_client/test_editgroup.py b/python/tests/codegen_tests/test_editgroup.py index e770fd54..e770fd54 100644 --- a/python/tests/fatcat_client/test_editgroup.py +++ b/python/tests/codegen_tests/test_editgroup.py diff --git a/python/tests/fatcat_client/test_editgroup_edits.py b/python/tests/codegen_tests/test_editgroup_edits.py index 38c3c814..38c3c814 100644 --- a/python/tests/fatcat_client/test_editgroup_edits.py +++ b/python/tests/codegen_tests/test_editgroup_edits.py diff --git a/python/tests/fatcat_client/test_editor.py b/python/tests/codegen_tests/test_editor.py index 00ca625e..00ca625e 100644 --- a/python/tests/fatcat_client/test_editor.py +++ b/python/tests/codegen_tests/test_editor.py diff --git a/python/tests/fatcat_client/test_entity_edit.py b/python/tests/codegen_tests/test_entity_edit.py index 2f0f7ac3..2f0f7ac3 100644 --- a/python/tests/fatcat_client/test_entity_edit.py +++ b/python/tests/codegen_tests/test_entity_edit.py diff --git a/python/tests/fatcat_client/test_error_response.py b/python/tests/codegen_tests/test_error_response.py index f0d09ee8..f0d09ee8 100644 --- a/python/tests/fatcat_client/test_error_response.py +++ b/python/tests/codegen_tests/test_error_response.py diff --git a/python/tests/fatcat_client/test_file_entity.py b/python/tests/codegen_tests/test_file_entity.py index f5806f9b..f5806f9b 100644 --- a/python/tests/fatcat_client/test_file_entity.py +++ b/python/tests/codegen_tests/test_file_entity.py diff --git a/python/tests/fatcat_client/test_release_contrib.py b/python/tests/codegen_tests/test_release_contrib.py index 9a61ef89..9a61ef89 100644 --- a/python/tests/fatcat_client/test_release_contrib.py +++ b/python/tests/codegen_tests/test_release_contrib.py diff --git a/python/tests/fatcat_client/test_release_entity.py b/python/tests/codegen_tests/test_release_entity.py index 9a1f0e97..9a1f0e97 100644 --- a/python/tests/fatcat_client/test_release_entity.py +++ b/python/tests/codegen_tests/test_release_entity.py diff --git a/python/tests/fatcat_client/test_release_ref.py b/python/tests/codegen_tests/test_release_ref.py index cafb6700..cafb6700 100644 --- a/python/tests/fatcat_client/test_release_ref.py +++ b/python/tests/codegen_tests/test_release_ref.py diff --git a/python/tests/fatcat_client/test_success.py b/python/tests/codegen_tests/test_success.py index 28d855fb..28d855fb 100644 --- a/python/tests/fatcat_client/test_success.py +++ b/python/tests/codegen_tests/test_success.py diff --git a/python/tests/fatcat_client/test_work_entity.py b/python/tests/codegen_tests/test_work_entity.py index 57b0cdad..57b0cdad 100644 --- a/python/tests/fatcat_client/test_work_entity.py +++ b/python/tests/codegen_tests/test_work_entity.py diff --git a/python/tests/entity_lifecycle.py b/python/tests/entity_lifecycle.py deleted file mode 100644 index 4ac7ee68..00000000 --- a/python/tests/entity_lifecycle.py +++ /dev/null @@ -1,80 +0,0 @@ - -import json -import unittest -import tempfile -import pytest -import fatcat -import fatcat.sql -from fatcat.models import * -from fixtures import * - - -def test_merge_works(app): - -    # two works, each with releases -    rv = app.post('/v0/work', -        data=json.dumps(dict()), -        headers={"content-type": "application/json"}) -    workA_id = json.loads(rv.data.decode('utf-8'))['id'] - -    rv = app.post('/v0/work', -        data=json.dumps(dict()), -        headers={"content-type": "application/json"}) -    workB_id = json.loads(rv.data.decode('utf-8'))['id'] - -    rv = app.post('/v0/release', -        data=json.dumps(dict( -            title="some release", -            work_type="journal-article", -            work=workA_id, -            doi="10.1234/A1")), -        headers={"content-type": "application/json"}) -    releaseA1 = json.loads(rv.data.decode('utf-8'))['id'] - -    rv = app.post('/v0/release', -        data=json.dumps(dict( -            title="some release", -            work_type="journal-article", -            work=workB_id, -            doi="10.1234/B1")), -        headers={"content-type": "application/json"}) -    releaseB1 = json.loads(rv.data.decode('utf-8'))['id'] - -    rv = app.post('/v0/release', -        data=json.dumps(dict( -            title="some release", -            work_type="journal-article", -            work=workB_id, -            doi="10.1234/A1")), -        headers={"content-type": "application/json"}) -    releaseB2 = json.loads(rv.data.decode('utf-8'))['id'] - -    # XXX: what if workB primary was set? - -    editgroup_id = 1 -    rv = app.post('/v0/editgroup/{}/accept'.format(editgroup_id), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    assert ChangelogEntry.query.count() == 1 -    assert WorkIdent.query.filter(WorkIdent.is_live==True).count() == 2 -    assert ReleaseIdent.query.filter(ReleaseIdent.is_live==True).count() == 3 - -    # merge works -    fatcat.sql.merge_works(workA_id, workB_id) -    editgroup_id = 2 -    rv = app.post('/v0/editgroup/{}/accept'.format(editgroup_id), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 - -    # check results -    assert ChangelogEntry.query.count() == 2 -    assert WorkIdent.query.filter(WorkIdent.is_live==True).count() == 2 -    assert ReleaseIdent.query.filter(ReleaseIdent.is_live==True).count() == 3 - -    workA_json = json.loads(app.get('/v0/work/{}'.format(workA_id)).data.decode('utf-8')) -    workB_json = json.loads(app.get('/v0/work/{}'.format(workB_id)).data.decode('utf-8')) -    assert workA_json['rev'] == workB_json['rev'] -    print(workA_json) -    print(workB_json) -    assert workA_json['redirect_id'] == None -    assert workB_json['redirect_id'] == workA_json['id'] diff --git a/python/tests/fixtures.py b/python/tests/fixtures.py index d3d8c24b..9092421f 100644 --- a/python/tests/fixtures.py +++ b/python/tests/fixtures.py @@ -5,30 +5,18 @@ import json  import signal  import pytest  import fatcat -import fatcat.sql -from fatcat.models import *  @pytest.fixture  def full_app(): -    fatcat.app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'      fatcat.app.testing = True      fatcat.app.debug = False -    fatcat.db.session.remove() -    fatcat.db.drop_all() -    fatcat.db.create_all() -    fatcat.sql.populate_db()      return fatcat.app  @pytest.fixture  def app(full_app):      return full_app.test_client() -@pytest.fixture -def rich_app(app): -    enrichen_test_app(app) -    return app -  @pytest.fixture(scope="function")  def api_client(full_app): @@ -46,102 +34,6 @@ def api_client(full_app):  ## Helpers ################################################################## -def enrichen_test_app(app): - -    rv = app.post('/v0/editgroup', -        data=json.dumps(dict( -            extra=dict(q=1, u="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    editgroup_id = obj['id'] - -    rv = app.post('/v0/container', -        data=json.dumps(dict( -            name="schmournal", -            publisher="society of authors", -            issn="2222-3333", -            editgroup=editgroup_id, -            extra=dict(a=2, i="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    container_id = obj['id'] - -    rv = app.post('/v0/creator', -        data=json.dumps(dict( -            name="anon y. mouse", -            orcid="0000-0002-1825-0097", -            editgroup=editgroup_id, -            extra=dict(w=1, q="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    creator_id = obj['id'] - -    rv = app.post('/v0/work', -        data=json.dumps(dict( -            title="dummy work", -            work_type="book", -            editgroup=editgroup_id, -            extra=dict(a=3, b="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    work_id = obj['id'] - -    # this stub work will be referenced -    rv = app.post('/v0/release', -        data=json.dumps(dict( -            title="derivative work", -            work_type="journal-article", -            work=work_id, -            creators=[creator_id], -            doi="10.1234/58", -            editgroup=editgroup_id, -            refs=[ -                dict(stub="some other journal article"), -            ], -            extra=dict(f=7, b="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    stub_release_id = obj['id'] - -    rv = app.post('/v0/release', -        data=json.dumps(dict( -            title="dummy work", -            work_type="book", -            work=work_id, -            container=container_id, -            creators=[creator_id], -            doi="10.1234/5678", -            editgroup=editgroup_id, -            refs=[ -                dict(stub="some book", target=stub_release_id), -            ], -            extra=dict(f=7, b="loopy"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    release_id = obj['id'] - -    rv = app.post('/v0/file', -        data=json.dumps(dict( -            sha1="deadbeefdeadbeef", -            size=1234, -            releases=[release_id], -            editgroup=editgroup_id, -            extra=dict(f=4, b="zing"))), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -    obj = json.loads(rv.data.decode('utf-8')) -    file_id = obj['id'] - -    rv = app.post('/v0/editgroup/{}/accept'.format(editgroup_id), -        headers={"content-type": "application/json"}) -    assert rv.status_code == 200 -  def check_entity_fields(e):      for key in ('rev', 'is_live', 'redirect_id'):          assert key in e diff --git a/python/tests/models.py b/python/tests/models.py deleted file mode 100644 index 98bb6bc7..00000000 --- a/python/tests/models.py +++ /dev/null @@ -1,87 +0,0 @@ - -import json -import unittest -import tempfile -import pytest -import fatcat -import fatcat.sql -from fatcat.models import * -from fixtures import * - - -def test_example_works(app): -    fatcat.dummy.insert_example_works() - -def test_random_works(app): -    fatcat.dummy.insert_random_works() - -def test_load_crossref(app): -    with open('./tests/files/crossref-works.2018-01-21.badsample.json', 'r') as f: -        raw = [json.loads(l) for l in f.readlines() if len(l) > 3] -    for obj in raw: -        fatcat.sql.add_crossref_via_model(obj) - -def test_schema_release_rev(app): -    assert ReleaseRev.query.count() == 0 -    e = { -        "title": "Bogus title", -        "release_type": "book", -        "creators": [], -        "refs": [], -    } -    model = release_rev_schema.load(e) -    fatcat.db.session.add(model.data) -    fatcat.db.session.commit() -    assert ReleaseRev.query.count() == 1 -    model_after = ReleaseRev.query.first() -    serial = release_rev_schema.dump(model_after).data -    #check_release(serial) -    for k in e: -        assert e[k] == serial[k] - -def test_schema_creator_rev(app): -    assert ReleaseRev.query.count() == 0 -    e = { -        "name": "Robin (Batman)", -    } -    model = creator_rev_schema.load(e) -    fatcat.db.session.add(model.data) -    fatcat.db.session.commit() -    assert CreatorRev.query.count() == 1 -    model_after = CreatorRev.query.first() -    serial = creator_rev_schema.dump(model_after).data -    check_creator(serial) -    for k in e.keys(): -        assert e[k] == serial[k] - -def test_schema_container_rev(app): -    assert ReleaseRev.query.count() == 0 -    e = { -        "name": "Papers Monthly", -    } -    model = container_rev_schema.load(e) -    fatcat.db.session.add(model.data) -    fatcat.db.session.commit() -    assert ContainerRev.query.count() == 1 -    model_after = ContainerRev.query.first() -    serial = container_rev_schema.dump(model_after).data -    check_container(serial) -    for k in e.keys(): -        assert e[k] == serial[k] - -def test_schema_file_rev(app): -    assert ReleaseRev.query.count() == 0 -    e = { -        "sha1": "asdf", -        "size": 6, -    } -    model = file_rev_schema.load(e) -    print(model) -    fatcat.db.session.add(model.data) -    fatcat.db.session.commit() -    assert FileRev.query.count() == 1 -    model_after = FileRev.query.first() -    serial = file_rev_schema.dump(model_after).data -    check_file(serial) -    for k in e.keys(): -        assert e[k] == serial[k] diff --git a/python/tests/routes.py b/python/tests/routes.py index 79d97fe4..80eb15fe 100644 --- a/python/tests/routes.py +++ b/python/tests/routes.py @@ -3,14 +3,10 @@ import json  import tempfile  import pytest  import fatcat -import fatcat.sql -from fatcat.models import *  from fixtures import * -def test_static_routes(rich_app): -    app = rich_app - +def test_static_routes(app):      for route in ('/health', '/robots.txt', '/', '/about'):          rv = app.get(route)          assert rv.status_code == 200 @@ -18,9 +14,7 @@ def test_static_routes(rich_app):      assert app.get("/static/bogus/route").status_code == 404 -def test_all_views(rich_app): -    app = rich_app - +def test_all_views(app):      for route in ('work', 'release', 'creator', 'container', 'file'):          print(route)          rv = app.get('/{}/1'.format(route)) diff --git a/python/tests/test_fixtures.py b/python/tests/test_fixtures.py deleted file mode 100644 index 0a0d3176..00000000 --- a/python/tests/test_fixtures.py +++ /dev/null @@ -1,29 +0,0 @@ - -import pytest -import fatcat.api_client -from fixtures import * - - -def test_rich_app_fixture(rich_app): -    app = rich_app - -    assert ChangelogEntry.query.count() == 1 - -    for cls in (WorkIdent, WorkRev, WorkEdit, -                ContainerIdent, ContainerRev, ContainerEdit, -                CreatorIdent, CreatorRev, CreatorEdit, -                FileIdent, FileRev, FileEdit): -        assert cls.query.count() == 1 -    for cls in (ReleaseIdent, ReleaseRev, ReleaseEdit): -        assert cls.query.count() == 2 - -    for cls in (WorkIdent, -                ContainerIdent, -                CreatorIdent, -                FileIdent): -        assert cls.query.filter(cls.is_live==True).count() == 1 -    assert ReleaseIdent.query.filter(ReleaseIdent.is_live==True).count() == 2 - -    # test that editor's active edit group is now invalid -    editor = Editor.query.first() -    assert editor.active_editgroup == None | 
