diff options
Diffstat (limited to 'python/tests/web_entity_views.py')
-rw-r--r-- | python/tests/web_entity_views.py | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/python/tests/web_entity_views.py b/python/tests/web_entity_views.py new file mode 100644 index 00000000..fe2371ed --- /dev/null +++ b/python/tests/web_entity_views.py @@ -0,0 +1,153 @@ + +import json +import tempfile +import pytest +from fatcat_client.rest import ApiException +from fixtures import * + +DUMMY_DEMO_ENTITIES = { + 'container': 'aaaaaaaaaaaaaeiraaaaaaaaai', + 'creator': 'aaaaaaaaaaaaaircaaaaaaaaai', + 'file': 'aaaaaaaaaaaaamztaaaaaaaaai', + 'fileset': 'aaaaaaaaaaaaaztgaaaaaaaaai', + 'webcapture': 'aaaaaaaaaaaaa53xaaaaaaaaai', + 'release': 'aaaaaaaaaaaaarceaaaaaaaaai', + 'work': 'aaaaaaaaaaaaavkvaaaaaaaaai', +} + +REALISTIC_DEMO_ENTITIES = { + 'container': 'aaaaaaaaaaaaaeiraaaaaaaaam', + 'creator': 'aaaaaaaaaaaaaircaaaaaaaaam', + 'file': 'aaaaaaaaaaaaamztaaaaaaaaam', + 'fileset': 'aaaaaaaaaaaaaztgaaaaaaaaam', + 'webcapture': 'aaaaaaaaaaaaa53xaaaaaaaaam', + 'release': 'aaaaaaaaaaaaarceaaaaaaaaam', + 'work': 'aaaaaaaaaaaaavkvaaaaaaaaam', +} + + +def test_entity_basics(app): + + for entity_type, ident in DUMMY_DEMO_ENTITIES.items(): + # good requests + rv = app.get('/{}/{}'.format(entity_type, ident)) + assert rv.status_code == 200 + rv = app.get('/{}/{}/history'.format(entity_type, ident)) + assert rv.status_code == 200 + + # bad requests + rv = app.get('/{}/9999999999'.format(entity_type)) + assert rv.status_code == 400 + rv = app.get('/{}/9999999999/history'.format(entity_type)) + assert rv.status_code == 400 + rv = app.get('/{}/f1f046a3-45c9-ffff-ffff-ffffffffffff'.format(entity_type)) + assert rv.status_code == 400 + rv = app.get('/{}/ccccccccccccccccccccccccca'.format(entity_type)) + assert rv.status_code == 404 + + +def test_container(app): + + rv = app.get('/container/aaaaaaaaaaaaaeiraaaaaaaaai') + assert rv.status_code == 200 + + rv = app.get('/container/aaaaaaaaaaaaaeiraaaaaaaaai/edit') + assert rv.status_code == 200 + + rv = app.get('/container/create') + # XXX: login assert rv.status_code == 200 + + +def test_lookups(app): + + rv = app.get('/container/lookup') + assert rv.status_code == 400 + rv = app.get('/container/lookup?issnl=9999-9999') + assert rv.status_code == 404 + rv = app.get('/container/lookup?issnl=1234-5678') + assert rv.status_code == 302 + + rv = app.get('/creator/lookup') + assert rv.status_code == 400 + rv = app.get('/creator/lookup?orcid=0000-0003-2088-7465') + assert rv.status_code == 302 + rv = app.get('/creator/lookup?orcid=0000-0003-2088-0000') + assert rv.status_code == 404 + + rv = app.get('/file/lookup') + assert rv.status_code == 400 + rv = app.get('/file/lookup?sha1=7d97e98f8af710c7e7fe703abc8f639e0ee507c4') + assert rv.status_code == 302 + rv = app.get('/file/lookup?sha1=7d97e98f8af710c7e7f00000000000000ee507c4') + assert rv.status_code == 404 + + rv = app.get('/fileset/lookup') + assert rv.status_code == 404 + + rv = app.get('/webcapture/lookup') + assert rv.status_code == 404 + + rv = app.get('/release/lookup') + assert rv.status_code == 400 + rv = app.get('/release/lookup?doi=10.123/abc') + assert rv.status_code == 302 + rv = app.get('/release/lookup?doi=10.123%2Fabc') + assert rv.status_code == 302 + rv = app.get('/release/lookup?doi=abcde') + assert rv.status_code == 400 + rv = app.get('/release/lookup?doi=10.1234/uuu') + assert rv.status_code == 404 + + rv = app.get('/work/lookup') + assert rv.status_code == 404 + + +def test_web_creator(app): + + rv = app.get('/creator/aaaaaaaaaaaaaircaaaaaaaaai') + assert rv.status_code == 200 + + rv = app.get('/creator/aaaaaaaaaaaaaircaaaaaaaaai/edit') + assert rv.status_code == 200 + + +def test_web_file(app): + + rv = app.get('/file/aaaaaaaaaaaaamztaaaaaaaaai') + assert rv.status_code == 200 + + rv = app.get('/file/aaaaaaaaaaaaamztaaaaaaaaai/edit') + assert rv.status_code == 200 + + rv = app.get('/file/aaaaaaaaaaaaamztaaaaaaaaai/history') + assert rv.status_code == 200 + +def test_web_release(app): + + rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai') + assert rv.status_code == 200 + + rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai/edit') + assert rv.status_code == 200 + + rv = app.get('/release/create') + # XXX: login assert rv.status_code == 200 + + +def test_web_search(app): + + rv = app.get('/release/search') + assert rv.status_code == 200 + + +def test_web_work(app): + + rv = app.get('/work/aaaaaaaaaaaaavkvaaaaaaaaai') + assert rv.status_code == 200 + + rv = app.get('/work/aaaaaaaaaaaaavkvaaaaaaaaai/edit') + assert rv.status_code == 404 + + rv = app.get('/work/create') + assert rv.status_code == 404 + |