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
|
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
|