Rest catalog integration testing
This PR resolves #1439 by adding integration tests for the REST Catalog.
Functionality testing against the server can be simulated to a certain degree, but some checks are very hard to emulate for example, triggering a 500 response from the server or getting information from the request which is abstracted away by the catalog.
Here is the lists of the tests that were successfully created in this integration testing:
- test_create_namespace_200
- test_create_namespace_if_exists_409
- test_list_namespaces_200
- test_create_namespace_409
- test_drop_namespace_404
- test_drop_namespace_409
- test_load_namespace_properties_200
- test_load_namespace_properties_404
- test_update_namespace_properties_200
- test_update_namespace_properties_404
- test_namespace_exists_204
- test_namespace_exists_404
- test_namespace_empty
- test_load_table_200
- test_load_table_honor_access_delegation
- test_load_table_from_self_identifier_200
- test_list_tables_200
- test_list_tables_200_sigv4
- test_list_tables_404
- test_load_table_404
- test_table_exists_204
- test_table_exists_404
- test_drop_table_404
- test_create_table_200
- test_create_table_with_given_location_removes_trailing_slash_200
- test_create_staged_table_200
- test_create_table_409
- test_create_table_if_not_exists_200
- test_delete_namespace_204
- test_delete_table_204
- test_delete_table_from_self_identifier_204
- test_delete_table_404
- test_rename_table_200
- test_rename_table_from_self_identifier_200
- test_create_table_missing_namespace
- test_load_table_invalid_namespace
- test_drop_table_invalid_namespace
- test_purge_table_invalid_namespace
- test_create_namespace_invalid_namespace
- test_drop_namespace_invalid_namespace
- test_load_namespace_properties_invalid_namespace
- test_update_namespace_properties_invalid_namespace
- test_request_session_with_ssl_client_cert
- test_create_namespace_if_not_exists
- test_create_namespace_if_already_existing
- test_list_views_200_sigv4
- test_list_views_404
- test_drop_view_invalid_namespace
- test_drop_view_404
- test_properties_sets_headers
- test_no_uri_supplied
There are some tests that are either skipped or were not applicable to the integration test or producing incorrect results.
Here is the full list:
- test_catalog_from_environment_variables
- test_catalog_from_environment_variables_override
- test_catalog_from_parameters_empty_env
- test_config_200
- test_config_sets_headers
- test_create_table_419
- test_drop_view_204
- test_list_namespace_with_parent_200
- test_list_namespaces_token_expired
- test_list_views_200
- test_namespace_exists_200
- test_namespace_exists_500
- test_register_table_200
- test_register_table_409
- test_request_session_with_ssl_ca_bundle
- test_table_exists_200
- test_table_exists_500
- test_table_identifier_in_commit_table_request
- test_token_200
- test_token_200_w_auth_url
- test_token_200_without_optional_fields
- test_token_400
- test_token_401
- test_token_with_custom_scope
- test_token_with_default_scope
- test_token_with_optional_oauth_params
- test_token_with_optional_oauth_params_as_empty
I had a look at the failing tests, and it appears the issue is in the sigv4 authentication option. But I can't reproduce it on local.
Any ideas where to proceed from here?
Hello @kevinjqliu, Please can we have a review for this PR