summaryrefslogtreecommitdiffstats
path: root/python/tests/web_entity_views.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests/web_entity_views.py')
-rw-r--r--python/tests/web_entity_views.py153
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
+