AI-1169 Add link in run_job
tool, update JobDetail
to fit the schema
#185
GitHub Actions / Test results (3.11)
succeeded
Jun 27, 2025 in 1s
212 passed, 0 failed and 0 skipped
✅ ./test-results.xml
212 tests were completed in 3s with 212 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 212✅ | 3s |
✅ pytest
tests.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.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_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
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]
tests.test_server.TestServer
✅ test_list_tools
✅ test_tools_have_descriptions
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]
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-keboola.snowflake-transformation]
✅ test_update_sql_transformation[BigQuery-keboola.google-bigquery-transformation]
✅ test_get_config_examples
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_configuration_response_model_validate
✅ test_reduced_flow_model_validate
✅ test_empty_flow_model_validate
tests.tools.flow.test_tools.TestFlowTools
✅ test_create_flow
✅ test_list_flows_all
✅ test_list_flows_specific_ids
✅ test_list_flows_with_missing_id
✅ test_get_flow
✅ test_update_flow
tests.tools.flow.test_tools.TestFlowEdgeCases
✅ test_create_flow_with_invalid_structure
tests.tools.flow.test_tools
✅ test_complete_flow_workflow
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_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_project
✅ test_get_project_info
tests.tools.test_sql
✅ test_query_data[select 1;-result0-a\r\n1\r\n]
✅ test_query_data[select id, name, email from user;-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);-result2-message\r\n1 table created\r\n]
✅ test_get_sql_dialect[snowflake]
✅ test_get_sql_dialect[biq-query]
✅ test_get_sql_dialect[foo]
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[bucket1]
✅ test_get_bucket[bucket2]
✅ test_list_buckets
✅ test_get_table
✅ test_list_tables[sapi_response0-expected0]
✅ test_list_tables[sapi_response1-expected1]
✅ test_update_bucket_description_success
✅ test_update_table_description_success
✅ test_update_column_description_success
Loading