@@ -11,9 +11,8 @@ class APIKeysTets(DelphiTestBase):
11
11
def localSetUp (self ):
12
12
self .role_name = "cdc"
13
13
14
- def _make_request (self , url : str = None , params : dict = {}, auth : tuple = None ):
15
- if not url :
16
- url = self .epidata_client .BASE_URL
14
+ def _make_request (self , endpoint : str , params : dict = {}, auth : tuple = None ):
15
+ url = f"{ self .epidata_client .BASE_URL } /{ endpoint } "
17
16
response = requests .get (url , params = params , auth = auth )
18
17
return response
19
18
@@ -22,13 +21,12 @@ def test_public_route(self):
22
21
public_route = "http://delphi_web_epidata/epidata/version"
23
22
status_codes = set ()
24
23
for _ in range (10 ):
25
- status_codes .add (self ._make_request (public_route ).status_code )
24
+ status_codes .add (self ._make_request ("version" , public_route ).status_code )
26
25
self .assertEqual (status_codes , {200 })
27
26
28
27
def test_no_multiples_data_source (self ):
29
28
"""Test requests with no multiples and with provided `data_source` and `signal` as a separate query params."""
30
29
params = {
31
- "source" : "covidcast" ,
32
30
"data_source" : "fb-survey" ,
33
31
"signal" : "smoothed_wcli" ,
34
32
"time_type" : "day" ,
@@ -38,13 +36,12 @@ def test_no_multiples_data_source(self):
38
36
}
39
37
status_codes = set ()
40
38
for _ in range (10 ):
41
- status_codes .add (self ._make_request (params = params ).status_code )
39
+ status_codes .add (self ._make_request ("covidcast" , params = params ).status_code )
42
40
self .assertEqual (status_codes , {200 })
43
41
44
42
def test_no_multiples_source_signal (self ):
45
43
"""Test requests with colon-delimited source-signal param presentation."""
46
44
params = {
47
- "source" : "covidcast" ,
48
45
"signal" : "fb-survey:smoothed_wcli" ,
49
46
"time_type" : "day" ,
50
47
"geo_type" : "state" ,
@@ -53,13 +50,12 @@ def test_no_multiples_source_signal(self):
53
50
}
54
51
status_codes = set ()
55
52
for _ in range (10 ):
56
- status_codes .add (self ._make_request (params = params ).status_code )
53
+ status_codes .add (self ._make_request ("covidcast" , params = params ).status_code )
57
54
self .assertEqual (status_codes , {200 })
58
55
59
56
def test_multiples_allowed_signal_two_multiples (self ):
60
57
"""Test requests with 2 multiples and allowed dashboard signal"""
61
58
params = {
62
- "source" : "covidcast" ,
63
59
"signal" : "fb-survey:smoothed_wcli" ,
64
60
"time_type" : "day" ,
65
61
"geo_type" : "state" ,
@@ -68,13 +64,12 @@ def test_multiples_allowed_signal_two_multiples(self):
68
64
}
69
65
status_codes = set ()
70
66
for _ in range (10 ):
71
- status_codes .add (self ._make_request (params = params ).status_code )
67
+ status_codes .add (self ._make_request ("covidcast" , params = params ).status_code )
72
68
self .assertEqual (status_codes , {200 })
73
69
74
70
def test_multiples_non_allowed_signal (self ):
75
71
"""Test requests with 2 multiples and non-allowed dashboard signal"""
76
72
params = {
77
- "source" : "covidcast" ,
78
73
"signal" : "hospital-admissions:smoothed_adj_covid19_from_claims" ,
79
74
"time_type" : "day" ,
80
75
"geo_type" : "state" ,
@@ -83,13 +78,12 @@ def test_multiples_non_allowed_signal(self):
83
78
}
84
79
status_codes = set ()
85
80
for _ in range (10 ):
86
- status_codes .add (self ._make_request (params = params ).status_code )
81
+ status_codes .add (self ._make_request ("covidcast" , params = params ).status_code )
87
82
self .assertEqual (status_codes , {200 , 429 })
88
83
89
84
def test_multiples_mixed_allowed_signal_two_multiples (self ):
90
85
"""Test requests with 2 multiples and mixed-allowed dashboard signal"""
91
86
params = {
92
- "source" : "covidcast" ,
93
87
"signal" : "fb-survey:smoothed_wcli,hospital-admissions:smoothed_adj_covid19_from_claims" ,
94
88
"time_type" : "day" ,
95
89
"geo_type" : "state" ,
@@ -98,13 +92,12 @@ def test_multiples_mixed_allowed_signal_two_multiples(self):
98
92
}
99
93
status_codes = set ()
100
94
for _ in range (10 ):
101
- status_codes .add (self ._make_request (params = params ).status_code )
95
+ status_codes .add (self ._make_request ("covidcast" , params = params ).status_code )
102
96
self .assertEqual (status_codes , {200 , 429 })
103
97
104
98
def test_multiples_allowed_signal_three_multiples (self ):
105
99
"""Test requests with 3 multiples and allowed dashboard signal"""
106
100
params = {
107
- "source" : "covidcast" ,
108
101
"signal" : "fb-survey:smoothed_wcli,fb-survey:smoothed_wcli" ,
109
102
"time_type" : "day" ,
110
103
"geo_type" : "state" ,
@@ -113,13 +106,12 @@ def test_multiples_allowed_signal_three_multiples(self):
113
106
}
114
107
status_codes = set ()
115
108
for _ in range (10 ):
116
- status_codes .add (self ._make_request (params = params ).status_code )
109
+ status_codes .add (self ._make_request ("covidcast" , params = params ).status_code )
117
110
self .assertEqual (status_codes , {401 })
118
111
119
112
def test_multiples_mixed_allowed_signal_three_multiples (self ):
120
113
"""Test requests with 3 multiples and mixed-allowed dashboard signal"""
121
114
params = {
122
- "source" : "covidcast" ,
123
115
"signal" : "fb-survey:smoothed_wcli,fb-survey:smoothed_wcli1" ,
124
116
"time_type" : "day" ,
125
117
"geo_type" : "state" ,
@@ -128,13 +120,12 @@ def test_multiples_mixed_allowed_signal_three_multiples(self):
128
120
}
129
121
status_codes = set ()
130
122
for _ in range (10 ):
131
- status_codes .add (self ._make_request (params = params ).status_code )
123
+ status_codes .add (self ._make_request ("covidcast" , params = params ).status_code )
132
124
self .assertEqual (status_codes , {401 })
133
125
134
126
def test_multiples_mixed_allowed_signal_api_key (self ):
135
127
"""Test requests with 3 multiples and mixed-allowed dashboard signal + valid API Key"""
136
128
params = {
137
- "source" : "covidcast" ,
138
129
"signal" : "fb-survey:smoothed_wcli,fb-survey:smoothed_wcli1" ,
139
130
"time_type" : "day" ,
140
131
"geo_type" : "state" ,
@@ -144,14 +135,13 @@ def test_multiples_mixed_allowed_signal_api_key(self):
144
135
status_codes = set ()
145
136
for _ in range (10 ):
146
137
status_codes .add (
147
- self ._make_request (params = params , auth = self .epidata_client .auth ).status_code
138
+ self ._make_request ("covidcast" , params = params , auth = self .epidata_client .auth ).status_code
148
139
)
149
140
self .assertEqual (status_codes , {200 })
150
141
151
142
def test_multiples_allowed_signal_api_key (self ):
152
143
"""Test requests with 3 multiples and allowed dashboard signal + valid API Key"""
153
144
params = {
154
- "source" : "covidcast" ,
155
145
"signal" : "fb-survey:smoothed_wcli,fb-survey:smoothed_wcli" ,
156
146
"time_type" : "day" ,
157
147
"geo_type" : "state" ,
@@ -161,14 +151,13 @@ def test_multiples_allowed_signal_api_key(self):
161
151
status_codes = set ()
162
152
for _ in range (10 ):
163
153
status_codes .add (
164
- self ._make_request (params = params , auth = self .epidata_client .auth ).status_code
154
+ self ._make_request ("covidcast" , params = params , auth = self .epidata_client .auth ).status_code
165
155
)
166
156
self .assertEqual (status_codes , {200 })
167
157
168
158
def test_no_multiples_allowed_signal_api_key (self ):
169
159
"""Test requests with no multiples and allowed dashboard signal + valid API Key"""
170
160
params = {
171
- "source" : "covidcast" ,
172
161
"signal" : "fb-survey:smoothed_wcli" ,
173
162
"time_type" : "day" ,
174
163
"geo_type" : "state" ,
@@ -178,14 +167,13 @@ def test_no_multiples_allowed_signal_api_key(self):
178
167
status_codes = set ()
179
168
for _ in range (10 ):
180
169
status_codes .add (
181
- self ._make_request (params = params , auth = self .epidata_client .auth ).status_code
170
+ self ._make_request ("covidcast" , params = params , auth = self .epidata_client .auth ).status_code
182
171
)
183
172
self .assertEqual (status_codes , {200 })
184
173
185
174
def test_no_multiples_allowed_signal_bad_api_key (self ):
186
175
"""Test requests with no multiples and allowed dashboard signal + bad API Key"""
187
176
params = {
188
- "source" : "covidcast" ,
189
177
"signal" : "fb-survey:smoothed_wcli" ,
190
178
"time_type" : "day" ,
191
179
"geo_type" : "state" ,
@@ -196,54 +184,51 @@ def test_no_multiples_allowed_signal_bad_api_key(self):
196
184
for _ in range (10 ):
197
185
status_codes .add (
198
186
self ._make_request (
199
- params = params , auth = ("bad_key" , "bad_email" )
187
+ "covidcast" , params = params , auth = ("bad_key" , "bad_email" )
200
188
).status_code
201
189
)
202
190
self .assertEqual (status_codes , {200 })
203
191
204
192
def test_restricted_endpoint_no_key (self ):
205
193
"""Test restricted endpoint with no auth key"""
206
- params = {"source" : "cdc" , " regions" : "1as" , "epiweeks" : "202020" }
194
+ params = {"regions" : "1as" , "epiweeks" : "202020" }
207
195
status_codes = set ()
208
196
for _ in range (10 ):
209
- status_codes .add (self ._make_request (params = params ).status_code )
197
+ status_codes .add (self ._make_request ("cdc" , params = params ).status_code )
210
198
self .assertEqual (status_codes , {401 })
211
199
212
200
def test_restricted_endpoint_invalid_key (self ):
213
201
"""Test restricted endpoint with invalid auth key"""
214
202
params = {
215
- "source" : "cdc" ,
216
203
"regions" : "1as" ,
217
204
"epiweeks" : "202020" ,
218
205
"auth" : "invalid_key" ,
219
206
}
220
207
status_codes = set ()
221
208
for _ in range (10 ):
222
- status_codes .add (self ._make_request (params = params ).status_code )
209
+ status_codes .add (self ._make_request ("cdc" , params = params ).status_code )
223
210
self .assertEqual (status_codes , {401 })
224
211
225
212
def test_restricted_endpoint_no_roles_key (self ):
226
213
"""Test restricted endpoint with no roles key"""
227
214
params = {
228
- "source" : "cdc" ,
229
215
"regions" : "1as" ,
230
216
"epiweeks" : "202020" ,
231
217
"auth" : "key" ,
232
218
}
233
219
status_codes = set ()
234
220
for _ in range (10 ):
235
- status_codes .add (self ._make_request (params = params ).status_code )
221
+ status_codes .add (self ._make_request ("cdc" , params = params ).status_code )
236
222
self .assertEqual (status_codes , {401 })
237
223
238
224
def test_restricted_endpoint_valid_roles_key (self ):
239
225
"""Test restricted endpoint with valid auth key with required role"""
240
226
params = {
241
- "source" : "cdc" ,
242
227
"regions" : "1as" ,
243
228
"epiweeks" : "202020" ,
244
229
"auth" : "cdc_key" ,
245
230
}
246
231
status_codes = set ()
247
232
for _ in range (10 ):
248
- status_codes .add (self ._make_request (params = params ).status_code )
233
+ status_codes .add (self ._make_request ("cdc" , params = params ).status_code )
249
234
self .assertEqual (status_codes , {200 })
0 commit comments