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
✅ ./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
Loading