From 72553a2d8b5fa094a5edd5e6ec15b5125a052016 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Wed, 16 Feb 2022 00:55:04 +0100 Subject: assume and use "$schema" properties in item definitions --- test/unit/test_install.py | 14 +++++++------- test/unit/test_repo_query.py | 30 +++++++++++++++--------------- test/unit/utils.py | 10 ++++++++++ 3 files changed, 32 insertions(+), 22 deletions(-) (limited to 'test/unit') diff --git a/test/unit/test_install.py b/test/unit/test_install.py index cef2aa6..f4bc483 100644 --- a/test/unit/test_install.py +++ b/test/unit/test_install.py @@ -197,7 +197,7 @@ def test_install_normal_usage(driver, execute_in_page, complex_variant): 'HTTP_code_item', 'invalid_JSON', 'newer_API_version', - 'invalid_API_version', + 'invalid_response_format', 'indexeddb_error_item', 'installing', 'indexeddb_error_file_uses', @@ -285,7 +285,7 @@ def test_install_dialogs(driver, execute_in_page, message): const response = { ok: true, status: 200, - json: {api_schema_version: [99, 99]} + json: {$schema: "https://hydrilla.koszko.org/schemas/api_mapping_description-2.1.schema.json"} }; browser.tabs.sendMessage = () => Promise.resolve(response); install_view.show(...arguments); @@ -293,15 +293,15 @@ def test_install_dialogs(driver, execute_in_page, message): 'https://hydril.la/', 'mapping', 'somemapping', [2, 1]) assert_dlg(['conf_buts'], - 'Mapping somemapping-2.1 was served using unsupported Hydrilla API version (99.99). You might need to update Haketilo.') - elif message == 'invalid_API_version': + 'Mapping somemapping-2.1 was served using unsupported Hydrilla API version. You might need to update Haketilo.') + elif message == 'invalid_response_format': execute_in_page( ''' const response = { ok: true, status: 200, - /* API version here is not an array as it should be. */ - json: {api_schema_version: 123} + /* $schema is not a string as it should be. */ + json: {$schema: null} }; browser.tabs.sendMessage = () => Promise.resolve(response); install_view.show(...arguments); @@ -309,7 +309,7 @@ def test_install_dialogs(driver, execute_in_page, message): 'https://hydril.la/', 'resource', 'someresource') assert_dlg(['conf_buts'], - 'Resource someresource was served using unsupported Hydrilla API version. You might need to update Haketilo.') + 'Resource someresource was served using a nonconforming response format.') elif message == 'indexeddb_error_item': execute_in_page( ''' diff --git a/test/unit/test_repo_query.py b/test/unit/test_repo_query.py index 77c5e75..c8c4875 100644 --- a/test/unit/test_repo_query.py +++ b/test/unit/test_repo_query.py @@ -137,7 +137,7 @@ def test_repo_query_normal_usage(driver, execute_in_page): 'HTTP_code', 'invalid_JSON', 'newer_API_version', - 'invalid_API_version', + 'invalid_response_format', 'querying_repo', 'no_results' ]) @@ -183,7 +183,7 @@ def test_repo_query_messages(driver, execute_in_page, message): ) show_and_wait_for_repo_entry() - elem = execute_in_page('returnval(view.repo_entries[0].info_span);') + elem = execute_in_page('returnval(view.repo_entries[0].info_div);') done = has_msg('Failure to communicate with repository :(', elem) WebDriverWait(driver, 10).until(done) elif message == 'HTTP_code': @@ -195,7 +195,7 @@ def test_repo_query_messages(driver, execute_in_page, message): ''') show_and_wait_for_repo_entry() - elem = execute_in_page('returnval(view.repo_entries[0].info_span);') + elem = execute_in_page('returnval(view.repo_entries[0].info_div);') done = has_msg('Repository sent HTTP code 405 :(', elem) WebDriverWait(driver, 10).until(done) elif message == 'invalid_JSON': @@ -207,7 +207,7 @@ def test_repo_query_messages(driver, execute_in_page, message): ''') show_and_wait_for_repo_entry() - elem = execute_in_page('returnval(view.repo_entries[0].info_span);') + elem = execute_in_page('returnval(view.repo_entries[0].info_div);') done = has_msg("Repository's response is not valid JSON :(", elem) WebDriverWait(driver, 10).until(done) elif message == 'newer_API_version': @@ -217,30 +217,31 @@ def test_repo_query_messages(driver, execute_in_page, message): const response = { ok: true, status: 200, - json: {api_schema_version: [1234]} + json: {$schema: "https://hydrilla.koszko.org/schemas/api_query_result-3.2.1.schema.json"} }; browser.tabs.sendMessage = () => Promise.resolve(response); ''') show_and_wait_for_repo_entry() - elem = execute_in_page('returnval(view.repo_entries[0].info_span);') - msg = 'Results were served using unsupported Hydrilla API version (1234). You might need to update Haketilo.' + elem = execute_in_page('returnval(view.repo_entries[0].info_div);') + msg = 'Results were served using unsupported Hydrilla API version. You might need to update Haketilo.' WebDriverWait(driver, 10).until(has_msg(msg, elem)) - elif message == 'invalid_API_version': + elif message == 'invalid_response_format': setup_view(execute_in_page, repo_urls) execute_in_page( ''' const response = { ok: true, status: 200, - json: {api_schema_version: null} + /* $schema is not a string as it should be. */ + json: {$schema: null} }; browser.tabs.sendMessage = () => Promise.resolve(response); ''') show_and_wait_for_repo_entry() - elem = execute_in_page('returnval(view.repo_entries[0].info_span);') - msg = 'Results were served using unsupported Hydrilla API version. You might need to update Haketilo.' + elem = execute_in_page('returnval(view.repo_entries[0].info_div);') + msg = 'Results were served using a nonconforming response format.' WebDriverWait(driver, 10).until(has_msg(msg, elem)) elif message == 'querying_repo': setup_view(execute_in_page, repo_urls) @@ -249,7 +250,7 @@ def test_repo_query_messages(driver, execute_in_page, message): ) show_and_wait_for_repo_entry() - elem = execute_in_page('returnval(view.repo_entries[0].info_span);') + elem = execute_in_page('returnval(view.repo_entries[0].info_div);') assert has_msg('Querying repository...', elem)(0) elif message == 'no_results': setup_view(execute_in_page, repo_urls) @@ -259,8 +260,7 @@ def test_repo_query_messages(driver, execute_in_page, message): ok: true, status: 200, json: { - api_schema_version: [1], - api_schema_revision: 1, + $schema: "https://hydrilla.koszko.org/schemas/api_query_result-1.schema.json", mappings: [] } }; @@ -268,7 +268,7 @@ def test_repo_query_messages(driver, execute_in_page, message): ''') show_and_wait_for_repo_entry() - elem = execute_in_page('returnval(view.repo_entries[0].info_span);') + elem = execute_in_page('returnval(view.repo_entries[0].info_div);') WebDriverWait(driver, 10).until(has_msg('No results :(', elem)) else: raise Exception('made a typo in test function params?') diff --git a/test/unit/utils.py b/test/unit/utils.py index 6ff04ed..b27a209 100644 --- a/test/unit/utils.py +++ b/test/unit/utils.py @@ -79,6 +79,11 @@ def make_sample_mapping(with_files=True): Haketilo's IndexedDB. """ return { + '$schema': 'https://hydrilla.koszko.org/schemas/api_mapping_description-1.schema.json', + 'generated_by': { + 'name': 'human', + 'version': 'sapiens-0.8.14' + }, 'source_name': 'example-org-fixes-new', 'source_copyright': [ sample_file_ref('report.spdx'), @@ -106,6 +111,11 @@ def make_sample_resource(with_files=True): Haketilo's IndexedDB. """ return { + '$schema': 'https://hydrilla.koszko.org/schemas/api_resource_description-1.schema.json', + 'generated_by': { + 'name': 'human', + 'version': 'sapiens-0.8.14' + }, 'source_name': 'hello', 'source_copyright': [ sample_file_ref('report.spdx'), -- cgit v1.2.3