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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
import json
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
# TODO: redirects and deleted entities
def test_container(app_admin):
app = app_admin
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')
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):
# not logged in
rv = app.get('/creator/aaaaaaaaaaaaaircaaaaaaaaai')
assert rv.status_code == 200
rv = app.get('/creator/aaaaaaaaaaaaaircaaaaaaaaai/edit')
assert rv.status_code == 302
def test_web_file(app):
# not logged in
rv = app.get('/file/aaaaaaaaaaaaamztaaaaaaaaai')
assert rv.status_code == 200
rv = app.get('/file/aaaaaaaaaaaaamztaaaaaaaaai/edit')
assert rv.status_code == 302
rv = app.get('/file/aaaaaaaaaaaaamztaaaaaaaaai/history')
assert rv.status_code == 200
def test_web_release(app):
# not logged in
rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai')
assert rv.status_code == 200
rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai/edit')
assert rv.status_code == 302
rv = app.get('/release/create')
assert rv.status_code == 302
def test_web_release_login(app_admin):
rv = app_admin.get('/release/aaaaaaaaaaaaarceaaaaaaaaai/edit')
assert rv.status_code == 200
rv = app_admin.get('/release/create')
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
|