Skip to content

AI-1488 docs(readme): update anchor links #2589

AI-1488 docs(readme): update anchor links

AI-1488 docs(readme): update anchor links #2589

GitHub Actions / Test results (3.12) succeeded Sep 4, 2025 in 0s

333 passed, 0 failed and 0 skipped

Tests passed successfully

✅ ./test-results.xml

333 tests were completed in 20s with 333 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
pytest 333✅ 20s

✅ pytest

tests.clients.test_client.TestRawKeboolaClient
  ✅ test_raise_for_status_500_with_exception_id
  ✅ test_raise_for_status_500_without_exception_id
  ✅ test_raise_for_status_500_with_malformed_json
  ✅ test_raise_for_status_404_uses_standard_exception
  ✅ test_get_method_integration_with_enhanced_error_handling
tests.clients.test_client.TestAsyncStorageClient
  ✅ test_trigger_event[foo-bar-None-None-None-None-None-None]
  ✅ test_trigger_event[foo-bar-baz-error-params1-results1-123-987654321]
  ✅ test_token_create[Test token-None-None-expected_data0]
  ✅ test_token_create[OAuth token-component_access1-None-expected_data1]
  ✅ test_token_create[Short-lived token-None-3600-expected_data2]
  ✅ test_token_create[Full token-component_access3-7200-expected_data3]
tests.clients.test_data_science
  ✅ test_tail_app_logs_with_lines_calls_get_text_with_lines
  ✅ test_tail_app_logs_with_lines_minimum_enforced
  ✅ test_tail_app_logs_with_since_calls_get_text_with_since_param
  ✅ test_tail_app_logs_raises_when_both_since_and_lines_provided
  ✅ test_tail_app_logs_raises_when_neither_param_provided
tests.test_config.TestConfig
  ✅ test_from_dict[d0-expected0]
  ✅ test_from_dict[d1-expected1]
  ✅ test_from_dict[d2-expected2]
  ✅ test_from_dict[d3-expected3]
  ✅ test_from_dict[d4-expected4]
  ✅ test_from_dict[d5-expected5]
  ✅ test_replace_by[orig0-d0-expected0]
  ✅ test_replace_by[orig1-d1-expected1]
  ✅ test_replace_by[orig2-d2-expected2]
  ✅ test_replace_by[orig3-d3-expected3]
  ✅ test_replace_by[orig4-d4-expected4]
  ✅ test_replace_by[orig5-d5-expected5]
  ✅ test_replace_by[orig6-d6-expected6]
  ✅ test_replace_by[orig7-d7-expected7]
  ✅ test_replace_by[orig8-d8-expected8]
  ✅ test_defaults
  ✅ test_no_token_password_in_repr
  ✅ test_url_field
tests.test_errors
  ✅ test_tool_errors[function_with_value_error-General recovery message.-recovery_instructions0-Check that data has valid types.-Simulated ValueError]
  ✅ test_tool_errors[function_with_value_error-General recovery message.-recovery_instructions1-General recovery message.-Simulated ValueError]
  ✅ test_tool_errors[function_with_value_error-None-recovery_instructions2-Check that data has valid types.-Simulated ValueError]
  ✅ test_tool_errors[function_with_value_error-None-recovery_instructions3-None-Simulated ValueError]
  ✅ test_logging_on_tool_exception
  ✅ test_get_session_id[http]
  ✅ test_get_session_id[stdio]
tests.test_oauth.TestSimpleOAuthProvider
  ✅ test_load_authorization_code[auth_code0-secret-expected0]
  ✅ test_load_authorization_code[auth_code1-secret-expected1]
  ✅ test_load_authorization_code[auth_code2-secret-expected2]
  ✅ test_load_authorization_code[auth_code3-!@#$%^&-None]
  ✅ test_read_oauth_tokens[foo-bar-scopes0-3600-604800]
  ✅ test_read_oauth_tokens[foo-bar-scopes1-3600-604800]
  ✅ test_read_oauth_tokens[foo-bar-scopes2-3600-604800]
  ✅ test_read_oauth_tokens[foo-bar-scopes3-1-3600]
  ✅ test_read_oauth_tokens[foo-bar-scopes4-7200-604800]
tests.test_server.TestServer
  ✅ test_list_tools
  ✅ test_tools_have_descriptions
  ✅ test_tools_input_schema
tests.test_server
  ✅ test_with_session_state[config0-envs0]
  ✅ test_with_session_state[config1-envs1]
  ✅ test_with_session_state[config2-envs2]
  ✅ test_with_session_state[config3-envs3]
  ✅ test_keboola_injection_and_lifespan[os_environ_params0-expected_params0]
  ✅ test_keboola_injection_and_lifespan[os_environ_params1-expected_params1]
  ✅ test_tool_annotations_and_tags
  ✅ test_tool_annotations_tags_values[get_component-True-None-None-tags0]
  ✅ test_tool_annotations_tags_values[get_config-True-None-None-tags1]
  ✅ test_tool_annotations_tags_values[list_configs-True-None-None-tags2]
  ✅ test_tool_annotations_tags_values[get_config_examples-True-None-None-tags3]
  ✅ test_tool_annotations_tags_values[create_config-None-False-None-tags4]
  ✅ test_tool_annotations_tags_values[update_config-None-True-None-tags5]
  ✅ test_tool_annotations_tags_values[add_config_row-None-False-None-tags6]
  ✅ test_tool_annotations_tags_values[update_config_row-None-True-None-tags7]
  ✅ test_tool_annotations_tags_values[list_transformations-True-None-None-tags8]
  ✅ test_tool_annotations_tags_values[create_sql_transformation-None-False-None-tags9]
  ✅ test_tool_annotations_tags_values[update_sql_transformation-None-True-None-tags10]
  ✅ test_tool_annotations_tags_values[get_bucket-True-None-None-tags11]
  ✅ test_tool_annotations_tags_values[list_buckets-True-None-None-tags12]
  ✅ test_tool_annotations_tags_values[get_table-True-None-None-tags13]
  ✅ test_tool_annotations_tags_values[list_tables-True-None-None-tags14]
  ✅ test_tool_annotations_tags_values[update_description-None-True-None-tags15]
  ✅ test_tool_annotations_tags_values[create_flow-None-False-None-tags16]
  ✅ test_tool_annotations_tags_values[create_conditional_flow-None-False-None-tags17]
  ✅ test_tool_annotations_tags_values[list_flows-True-None-None-tags18]
  ✅ test_tool_annotations_tags_values[update_flow-None-True-None-tags19]
  ✅ test_tool_annotations_tags_values[get_flow-True-None-None-tags20]
  ✅ test_tool_annotations_tags_values[get_flow_examples-True-None-None-tags21]
  ✅ test_tool_annotations_tags_values[get_flow_schema-True-None-None-tags22]
  ✅ test_tool_annotations_tags_values[query_data-True-None-None-tags23]
  ✅ test_tool_annotations_tags_values[get_job-True-None-None-tags24]
  ✅ test_tool_annotations_tags_values[list_jobs-True-None-None-tags25]
  ✅ test_tool_annotations_tags_values[run_job-None-True-None-tags26]
  ✅ test_tool_annotations_tags_values[get_project_info-True-None-None-tags27]
  ✅ test_tool_annotations_tags_values[docs_query-True-None-None-tags28]
  ✅ test_tool_annotations_tags_values[search-True-None-None-tags29]
  ✅ test_tool_annotations_tags_values[find_component_id-True-None-None-tags30]
  ✅ test_tool_annotations_tags_values[create_oauth_url-None-True-None-tags31]
  ✅ test_json_logging
tests.tools.components.test_tools
  ✅ test_list_configs_by_types
  ✅ test_list_transformations
  ✅ test_list_configs_from_ids
  ✅ test_list_transformations_from_ids
  ✅ test_get_config
  ✅ test_create_sql_transformation[Snowflake-keboola.snowflake-transformation-1234]
  ✅ test_create_sql_transformation[BigQuery-keboola.google-bigquery-transformation-5678]
  ✅ test_create_sql_transformation_fail[Unknown]
  ✅ test_update_sql_transformation[snowflake_both_provided]
  ✅ test_update_sql_transformation[bigquery_parameters_only]
  ✅ test_update_sql_transformation[snowflake_storage_only]
  ✅ test_get_config_examples
  ✅ test_create_config
  ✅ test_add_config_row
  ✅ test_update_config[both_provided]
  ✅ test_update_config[parameters_only]
  ✅ test_update_config[storage_only]
  ✅ test_update_config_row[both_provided]
  ✅ test_update_config_row[parameters_only]
  ✅ test_update_config_row[storage_only]
tests.tools.components.test_utils
  ✅ test_handle_component_types[application-expected0]
  ✅ test_handle_component_types[component_type1-expected1]
  ✅ test_handle_component_types[None-expected2]
  ✅ test_handle_component_types[component_type3-expected3]
  ✅ test_get_transformation_configuration[sql_statements0-created_table_names0-test name-out.c-test-name]
  ✅ test_get_transformation_configuration[sql_statements1-created_table_names1-test name two-out.c-test-name-two]
  ✅ test_get_transformation_configuration[sql_statements2-created_table_names2-test name-out.c-test-name]
  ✅ test_clean_bucket_name[!@#$%^&*()+,./;'[]"\\`-]
  ✅ test_clean_bucket_name[a_--a_-]
  ✅ test_clean_bucket_name[1234567890-1234567890]
  ✅ test_clean_bucket_name[test_table_1-test_table_1]
  ✅ test_clean_bucket_name[test:-Table-1!-test-Table-1]
  ✅ test_clean_bucket_name[test Test-test-Test]
  ✅ test_clean_bucket_name[__test_test-test_test]
  ✅ test_clean_bucket_name[--test-test---test-test]
  ✅ test_clean_bucket_name[+\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9-escrzyaie]
  ✅ test_transformation_configuration_serialization[sql_statements]
  ✅ test_transformation_configuration_serialization[script]
tests.tools.components.test_validation
  ✅ test_load_schema[storage-schema.json-expected_keywords0]
  ✅ test_validate_storage_valid[tests/resources/storage/storage_valid_1.json]
  ✅ test_validate_storage_valid[tests/resources/storage/storage_valid_2.json]
  ✅ test_validate_storage_valid[tests/resources/storage/storage_valid_3.json]
  ✅ test_validate_storage_valid[tests/resources/storage/storage_valid_4.json]
  ✅ test_validate_storage_invalid[tests/resources/storage/storage_invalid_1.json]
  ✅ test_validate_storage_invalid[tests/resources/storage/storage_invalid_2.json]
  ✅ test_validate_storage_invalid[tests/resources/storage/storage_invalid_3.json]
  ✅ test_validate_storage_invalid[tests/resources/storage/storage_invalid_4.json]
  ✅ test_validate_storage_invalid[tests/resources/storage/storage_invalid_5.json]
  ✅ test_validate_storage_invalid[tests/resources/storage/storage_invalid_6.json]
  ✅ test_validate_storage_invalid[tests/resources/storage/storage_invalid_7.json]
  ✅ test_validate_storage_output_format[input_storage0-output_storage0]
  ✅ test_validate_storage_output_format[input_storage1-output_storage1]
  ✅ test_validate_parameters_output_format[input_parameters0-output_parameters0]
  ✅ test_validate_parameters_output_format[input_parameters1-output_parameters1]
  ✅ test_validate_flow_valid[tests/resources/flow/flow_valid_1.json]
  ✅ test_validate_flow_valid[tests/resources/flow/flow_valid_2.json]
  ✅ test_validate_flow_valid[tests/resources/flow/flow_valid_3.json]
  ✅ test_validate_flow_invalid[tests/resources/flow/flow_invalid_1.json]
  ✅ test_validate_flow_invalid[tests/resources/flow/flow_invalid_2.json]
  ✅ test_validate_flow_invalid[tests/resources/flow/flow_invalid_3.json]
  ✅ test_validate_flow_invalid[tests/resources/flow/flow_invalid_4.json]
  ✅ test_validate_flow_invalid[tests/resources/flow/flow_invalid_5.json]
  ✅ test_validate_flow_invalid[tests/resources/flow/flow_invalid_6.json]
  ✅ test_validate_json_against_schema_invalid_schema
  ✅ test_recoverable_validation_error_str
  ✅ test_normalize_schema[input_schema0-expected_schema0]
  ✅ test_normalize_schema[input_schema1-expected_schema1]
  ✅ test_normalize_schema[input_schema2-expected_schema2]
  ✅ test_normalize_schema[input_schema3-expected_schema3]
  ✅ test_normalize_schema[input_schema4-expected_schema4]
  ✅ test_normalize_schema[input_schema5-expected_schema5]
  ✅ test_normalize_schema[input_schema6-expected_schema6]
  ✅ test_normalize_schema[input_schema7-expected_schema7]
  ✅ test_normalize_schema[input_schema8-expected_schema8]
  ✅ test_normalize_schema[input_schema9-expected_schema9]
  ✅ test_normalize_schema[input_schema10-expected_schema10]
  ✅ test_normalize_schema_invalid_parameters[input_schema0]
  ✅ test_normalize_schema_invalid_parameters[input_schema1]
  ✅ test_schema_validation[tests/resources/parameters/root_parameters_schema.json-json_data0]
  ✅ test_schema_validation[tests/resources/parameters/row_parameters_schema.json-json_data1]
  ✅ test_validate_row_parameters[tests/resources/parameters/row_parameters_schema.json-tests/resources/parameters/row_parameters_valid.json-True]
  ✅ test_validate_row_parameters[tests/resources/parameters/row_parameters_schema.json-tests/resources/parameters/row_parameters_invalid.json-False]
  ✅ test_validate_root_parameters[tests/resources/parameters/root_parameters_schema.json-tests/resources/parameters/root_parameters_valid.json-True]
  ✅ test_validate_root_parameters[tests/resources/parameters/root_parameters_schema.json-tests/resources/parameters/root_parameters_invalid.json-False]
  ✅ test_validate_storage_configuration_output[input_storage0-output_storage0]
  ✅ test_validate_storage_configuration_output[input_storage1-output_storage1]
  ✅ test_validate_storage_configuration_output[input_storage2-output_storage2]
  ✅ test_validate_storage_configuration_output[None-output_storage3]
  ✅ test_validate_storage_configuration_output[input_storage4-output_storage4]
  ✅ test_validate_storage_of_row_based_and_root_based_writers[False-storage0-False-None]
  ✅ test_validate_storage_of_row_based_and_root_based_writers[False-storage1-False-The "storage" must contain "input" mappings for the root configuration of the writer component]
  ✅ test_validate_storage_of_row_based_and_root_based_writers[False-storage2-True-None]
  ✅ test_validate_storage_of_row_based_and_root_based_writers[True-storage3-True-None]
  ✅ test_validate_storage_of_row_based_and_root_based_writers[True-storage4-True-The "storage" must contain "input" mappings for the row configuration of the writer component]
  ✅ test_validate_storage_of_sql_transformation[storage0-False]
  ✅ test_validate_storage_of_sql_transformation[storage1-False]
  ✅ test_validate_storage_of_sql_transformation[storage2-False]
  ✅ test_validate_storage_of_sql_transformation[storage3-False]
  ✅ test_validate_storage_of_sql_transformation[storage4-False]
  ✅ test_validate_storage_of_sql_transformation[storage5-False]
  ✅ test_validate_storage_of_sql_transformation[storage6-False]
  ✅ test_validate_storage_of_sql_transformation[storage7-True]
  ✅ test_validate_storage_of_sql_transformation[storage8-True]
  ✅ test_validate_root_parameters_configuration_output[input_parameters0-output_parameters0]
  ✅ test_validate_root_parameters_configuration_output[input_parameters1-output_parameters1]
  ✅ test_validate_row_parameters_configuration_output[input_parameters0-output_parameters0]
  ✅ test_validate_row_parameters_configuration_output[input_parameters1-output_parameters1]
  ✅ test_validate_parameters_configuration_no_schema[None]
  ✅ test_validate_parameters_configuration_no_schema[input_schema1]
  ✅ test_validate_parameters_root_real_scenario[tests/resources/parameters/root_parameters_invalid.json-True-False]
  ✅ test_validate_parameters_root_real_scenario[tests/resources/parameters/root_parameters_invalid.json-False-False]
  ✅ test_validate_parameters_root_real_scenario[tests/resources/parameters/root_parameters_valid.json-True-True]
  ✅ test_validate_parameters_root_real_scenario[tests/resources/parameters/root_parameters_valid.json-False-True]
tests.tools.flow.test_model.TestFlowModels
  ✅ test_flow_from_api_response
  ✅ test_flow_summary_from_api_response
  ✅ test_empty_flow_from_api_response
tests.tools.flow.test_tools.TestCreateFlowTool
  ✅ test_create_legacy_flow
  ✅ test_create_conditional_flow
tests.tools.flow.test_tools.TestUpdateFlowTool
  ✅ test_update_legacy_flow
  ✅ test_update_conditional_flow
  ✅ test_update_conditional_flow_fails_when_conditional_flows_disabled
tests.tools.flow.test_tools.TestGetFlowTool
  ✅ test_get_legacy_flow
  ✅ test_get_conditional_flow
tests.tools.flow.test_tools.TestListFlowsTool
  ✅ test_list_flows_no_params
  ✅ test_list_flows_specific_ids_mixed_types
tests.tools.flow.test_tools.TestGetFlowSchemaTool
  ✅ test_get_legacy_flow_schema_when_conditional_flows_disabled
  ✅ test_get_legacy_flow_schema_when_conditional_flows_enabled
  ✅ test_get_conditional_flow_schema_when_conditional_flows_enabled
  ✅ test_get_conditional_flow_schema_fails_when_conditional_flows_disabled
tests.tools.flow.test_tools.TestGetFlowExamplesTool
  ✅ test_get_legacy_flow_examples
  ✅ test_get_conditional_flow_examples
  ✅ test_get_conditional_flow_examples_when_conditional_flows_disabled
tests.tools.flow.test_utils.TestFlowHelpers
  ✅ test_ensure_phase_ids_with_missing_ids
  ✅ test_ensure_phase_ids_with_existing_ids
  ✅ test_ensure_task_ids_with_missing_ids
  ✅ test_ensure_task_ids_adds_default_mode
  ✅ test_ensure_task_ids_validates_required_fields
  ✅ test_validate_flow_structure_success
  ✅ test_validate_flow_structure_invalid_phase_dependency
  ✅ test_validate_flow_structure_invalid_task_phase
tests.tools.flow.test_utils.TestCircularDependencies
  ✅ test_no_circular_dependencies
  ✅ test_direct_circular_dependency
  ✅ test_indirect_circular_dependency
  ✅ test_self_referencing_dependency
  ✅ test_complex_valid_dependencies
tests.tools.flow.test_utils.TestFlowEdgeCases
  ✅ test_phase_validation_with_missing_name
  ✅ test_task_validation_with_missing_name
  ✅ test_empty_flow_validation
tests.tools.test_data_apps
  ✅ test_deploy_data_app_when_current_state_contradicts_with_action[starting-stop-Data app is currently "starting", could not be stopped at the moment.]
  ✅ test_deploy_data_app_when_current_state_contradicts_with_action[restarting-stop-Data app is currently "starting", could not be stopped at the moment.]
  ✅ test_deploy_data_app_when_current_state_contradicts_with_action[stopping-deploy-Data app is currently "stopping", could not be started at the moment.]
  ✅ test_get_data_app_slug
  ✅ test_get_authorization_mapping
  ✅ test_is_authorized_behavior
  ✅ test_inject_query_to_source_code_when_already_included
  ✅ test_inject_query_to_source_code_with_markers
  ✅ test_inject_query_to_source_code_with_placeholder
  ✅ test_inject_query_to_source_code_default_path
  ✅ test_build_data_app_config_merges_defaults_and_secrets
  ✅ test_update_existing_data_app_config_merges_and_preserves_existing_on_conflict
  ✅ test_get_secrets_encrypts_token_and_sets_metadata
  ✅ test_data_app_summary_from_dict_minimal[values0]
  ✅ test_data_app_summary_from_dict_minimal[values1]
  ✅ test_data_app_summary_from_dict_minimal[values2]
  ✅ test_data_app_summary_from_dict_minimal[values3]
tests.tools.test_doc
  ✅ test_docs_query
tests.tools.test_jobs
  ✅ test_list_jobs
  ✅ test_get_job
  ✅ test_list_jobs_with_component_and_config_id
  ✅ test_list_jobs_with_component_id_without_config_id
  ✅ test_run_job
  ✅ test_run_job_fail
  ✅ test_job_detail_model_validate_dict_fields[result-input_value0-expected_result0]
  ✅ test_job_detail_model_validate_dict_fields[result-input_value1-expected_result1]
  ✅ test_job_detail_model_validate_dict_fields[result-input_value2-expected_result2]
  ✅ test_job_detail_model_validate_dict_fields[result-None-expected_result3]
  ✅ test_job_detail_model_validate_dict_fields[result-input_value4-ValueError]
  ✅ test_job_detail_model_validate_dict_fields[configData-input_value5-expected_result5]
  ✅ test_job_detail_model_validate_dict_fields[configData-input_value6-expected_result6]
  ✅ test_job_detail_model_validate_dict_fields[configData-input_value7-ValueError]
tests.tools.test_oauth
  ✅ test_create_oauth_url_success
  ✅ test_create_oauth_url_different_components[keboola.ex-google-analytics-v4-my-config-123]
  ✅ test_create_oauth_url_different_components[keboola.ex-gmail-gmail-config-456]
  ✅ test_create_oauth_url_different_components[other.component-test-config]
  ✅ test_create_oauth_url_token_creation_failure
  ✅ test_create_oauth_url_missing_token_in_response
tests.tools.test_project
  ✅ test_get_project_info
tests.tools.test_search.TestItemsGroup
  ✅ test_from_api_response_table_type
  ✅ test_from_api_response_configuration_type
  ✅ test_from_api_response_configuration_row_type
  ✅ test_from_api_response_flow_type
  ✅ test_from_api_response_filters_by_type
  ✅ test_from_api_response_empty_items
tests.tools.test_search.TestItemsGroupItem
  ✅ test_from_api_response_table_item
  ✅ test_from_api_response_missing_bucket_info
tests.tools.test_search.TestGlobalSearchOutput
  ✅ test_from_api_responses
  ✅ test_from_api_responses_empty
tests.tools.test_search.TestGlobalSearchTool
  ✅ test_global_search_success
  ✅ test_global_search_default_parameters
  ✅ test_global_search_limit_out_of_range
  ✅ test_global_search_negative_offset
  ✅ test_global_search_feature_not_enabled
  ✅ test_global_search_joins_prefixes
  ✅ test_global_search_with_valid_limit
tests.tools.test_sql
  ✅ test_query_data[select 1;-Simple Count Query-result0-a\r\n1\r\n]
  ✅ test_query_data[select id, name, email from user;-User Details List-result1-id,name,email\r\n1,John,[email protected]\r\n2,Joe,[email protected]\r\n]
  ✅ test_query_data[create table foo (id integer, name varchar);-Create Table Operation-result2-message\r\n1 table created\r\n]
tests.tools.test_sql.TestWorkspaceManagerSnowflake
  ✅ test_get_sql_dialect
  ✅ test_get_quoted_name
  ✅ test_get_table_fqn[table0-sapi_result0-expected0]
  ✅ test_get_table_fqn[table1-sapi_result1-expected1]
  ✅ test_get_table_fqn[table2-sapi_result2-expected2]
  ✅ test_execute_query[select id, name, email from user;-expected0]
  ✅ test_execute_query[create table foo (id integer, name varchar);-expected1]
  ✅ test_execute_query[bla bla bla-expected2]
tests.tools.test_sql.TestWorkspaceManagerBigQuery
  ✅ test_get_sql_dialect
  ✅ test_get_quoted_name
  ✅ test_get_table_fqn[table0-expected0]
  ✅ test_get_table_fqn[table1-expected1]
  ✅ test_execute_query[select id, name, email from user;-expected0]
  ✅ test_execute_query[CREATE TABLE `foo` (id INT64, name STRING);-expected1]
  ✅ test_execute_query[bla bla bla-expected2]
tests.tools.test_storage
  ✅ test_get_bucket[None-in.c-foo-expected_bucket0]
  ✅ test_get_bucket[1246948-in.c-foo-expected_bucket1]
  ✅ test_get_bucket[None-out.c-bar-expected_bucket2]
  ✅ test_get_bucket[1246948-out.c-bar-expected_bucket3]
  ✅ test_get_bucket[1246948-in.c-baz-expected_bucket4]
  ✅ test_list_buckets[None-expected_buckets0]
  ✅ test_list_buckets[1246948-expected_buckets1]
  ✅ test_get_table[None-in.c-foo.users-expected_table0]
  ✅ test_get_table[1246948-in.c-foo.users-expected_table1]
  ✅ test_get_table[None-in.c-foo.emails-expected_table2]
  ✅ test_get_table[1246948-in.c-foo.emails-expected_table3]
  ✅ test_get_table[None-in.c-foo.assets-None]
  ✅ test_get_table[1246948-in.c-foo.assets-expected_table5]
  ✅ test_list_tables[None-in.c-foo-expected_tables0]
  ✅ test_list_tables[1246948-in.c-foo-expected_tables1]
  ✅ test_update_bucket_description_success
  ✅ test_update_table_description_success
  ✅ test_update_column_description_success