Revision 72553a2d
Added by koszko over 1 year ago
test/unit/test_repo_query.py | ||
---|---|---|
137 | 137 |
'HTTP_code', |
138 | 138 |
'invalid_JSON', |
139 | 139 |
'newer_API_version', |
140 |
'invalid_API_version',
|
|
140 |
'invalid_response_format',
|
|
141 | 141 |
'querying_repo', |
142 | 142 |
'no_results' |
143 | 143 |
]) |
... | ... | |
183 | 183 |
) |
184 | 184 |
show_and_wait_for_repo_entry() |
185 | 185 |
|
186 |
elem = execute_in_page('returnval(view.repo_entries[0].info_span);')
|
|
186 |
elem = execute_in_page('returnval(view.repo_entries[0].info_div);')
|
|
187 | 187 |
done = has_msg('Failure to communicate with repository :(', elem) |
188 | 188 |
WebDriverWait(driver, 10).until(done) |
189 | 189 |
elif message == 'HTTP_code': |
... | ... | |
195 | 195 |
''') |
196 | 196 |
show_and_wait_for_repo_entry() |
197 | 197 |
|
198 |
elem = execute_in_page('returnval(view.repo_entries[0].info_span);')
|
|
198 |
elem = execute_in_page('returnval(view.repo_entries[0].info_div);')
|
|
199 | 199 |
done = has_msg('Repository sent HTTP code 405 :(', elem) |
200 | 200 |
WebDriverWait(driver, 10).until(done) |
201 | 201 |
elif message == 'invalid_JSON': |
... | ... | |
207 | 207 |
''') |
208 | 208 |
show_and_wait_for_repo_entry() |
209 | 209 |
|
210 |
elem = execute_in_page('returnval(view.repo_entries[0].info_span);')
|
|
210 |
elem = execute_in_page('returnval(view.repo_entries[0].info_div);')
|
|
211 | 211 |
done = has_msg("Repository's response is not valid JSON :(", elem) |
212 | 212 |
WebDriverWait(driver, 10).until(done) |
213 | 213 |
elif message == 'newer_API_version': |
... | ... | |
217 | 217 |
const response = { |
218 | 218 |
ok: true, |
219 | 219 |
status: 200, |
220 |
json: {api_schema_version: [1234]}
|
|
220 |
json: {$schema: "https://hydrilla.koszko.org/schemas/api_query_result-3.2.1.schema.json"}
|
|
221 | 221 |
}; |
222 | 222 |
browser.tabs.sendMessage = () => Promise.resolve(response); |
223 | 223 |
''') |
224 | 224 |
show_and_wait_for_repo_entry() |
225 | 225 |
|
226 |
elem = execute_in_page('returnval(view.repo_entries[0].info_span);')
|
|
227 |
msg = 'Results were served using unsupported Hydrilla API version (1234). You might need to update Haketilo.'
|
|
226 |
elem = execute_in_page('returnval(view.repo_entries[0].info_div);')
|
|
227 |
msg = 'Results were served using unsupported Hydrilla API version. You might need to update Haketilo.' |
|
228 | 228 |
WebDriverWait(driver, 10).until(has_msg(msg, elem)) |
229 |
elif message == 'invalid_API_version':
|
|
229 |
elif message == 'invalid_response_format':
|
|
230 | 230 |
setup_view(execute_in_page, repo_urls) |
231 | 231 |
execute_in_page( |
232 | 232 |
''' |
233 | 233 |
const response = { |
234 | 234 |
ok: true, |
235 | 235 |
status: 200, |
236 |
json: {api_schema_version: null} |
|
236 |
/* $schema is not a string as it should be. */ |
|
237 |
json: {$schema: null} |
|
237 | 238 |
}; |
238 | 239 |
browser.tabs.sendMessage = () => Promise.resolve(response); |
239 | 240 |
''') |
240 | 241 |
show_and_wait_for_repo_entry() |
241 | 242 |
|
242 |
elem = execute_in_page('returnval(view.repo_entries[0].info_span);')
|
|
243 |
msg = 'Results were served using unsupported Hydrilla API version. You might need to update Haketilo.'
|
|
243 |
elem = execute_in_page('returnval(view.repo_entries[0].info_div);')
|
|
244 |
msg = 'Results were served using a nonconforming response format.'
|
|
244 | 245 |
WebDriverWait(driver, 10).until(has_msg(msg, elem)) |
245 | 246 |
elif message == 'querying_repo': |
246 | 247 |
setup_view(execute_in_page, repo_urls) |
... | ... | |
249 | 250 |
) |
250 | 251 |
show_and_wait_for_repo_entry() |
251 | 252 |
|
252 |
elem = execute_in_page('returnval(view.repo_entries[0].info_span);')
|
|
253 |
elem = execute_in_page('returnval(view.repo_entries[0].info_div);')
|
|
253 | 254 |
assert has_msg('Querying repository...', elem)(0) |
254 | 255 |
elif message == 'no_results': |
255 | 256 |
setup_view(execute_in_page, repo_urls) |
... | ... | |
259 | 260 |
ok: true, |
260 | 261 |
status: 200, |
261 | 262 |
json: { |
262 |
api_schema_version: [1], |
|
263 |
api_schema_revision: 1, |
|
263 |
$schema: "https://hydrilla.koszko.org/schemas/api_query_result-1.schema.json", |
|
264 | 264 |
mappings: [] |
265 | 265 |
} |
266 | 266 |
}; |
... | ... | |
268 | 268 |
''') |
269 | 269 |
show_and_wait_for_repo_entry() |
270 | 270 |
|
271 |
elem = execute_in_page('returnval(view.repo_entries[0].info_span);')
|
|
271 |
elem = execute_in_page('returnval(view.repo_entries[0].info_div);')
|
|
272 | 272 |
WebDriverWait(driver, 10).until(has_msg('No results :(', elem)) |
273 | 273 |
else: |
274 | 274 |
raise Exception('made a typo in test function params?') |
Also available in: Unified diff
assume and use "$schema" properties in item definitions