From 692417e323f0bd27e7e1c16457105e3669cd3603 Mon Sep 17 00:00:00 2001 From: Andrey Anshin Date: Sat, 30 Mar 2024 04:06:51 +0400 Subject: [PATCH] Raise an error on Airflow Deprecation warnings in tests (#38504) * POC: Raise an error on Airflow Deprecation warnings in tests * Add fixture for check deprecations * Ignore providers tests per test * Rever changes in test_pod.py * Add categories for tests, and evaluate most of the tests * Exclude TestSetDagRunNote::test_should_respond_200_with_anonymous_user * Check other groups * Ignore FAB / Connexion 2 specific errors * Remove non-compliant DbApiHook deprecations * Disable buitin warning summary and buitify output * Add information about prohibited warnings * Add to ignore additional tests from tests/models/test_taskinstance.py::TestTaskInstance --- contributing-docs/testing/unit_tests.rst | 43 +- pyproject.toml | 13 +- tests/conftest.py | 84 +- tests/deprecations_ignore.yml | 1051 ++++++++++++++++++++++ 4 files changed, 1141 insertions(+), 50 deletions(-) create mode 100644 tests/deprecations_ignore.yml diff --git a/contributing-docs/testing/unit_tests.rst b/contributing-docs/testing/unit_tests.rst index 59082ecf5ae6ca..56e9cb179966ca 100644 --- a/contributing-docs/testing/unit_tests.rst +++ b/contributing-docs/testing/unit_tests.rst @@ -29,12 +29,45 @@ Follow the guidelines when writing unit tests: * For standard unit tests that do not require integrations with external systems, make sure to simulate all communications. * All Airflow tests are run with ``pytest``. Make sure to set your IDE/runners (see below) to use ``pytest`` by default. -* For new tests, use standard "asserts" of Python and ``pytest`` decorators/context managers for testing - rather than ``unittest`` ones. See `pytest docs `_ for details. -* Use a parameterized framework for tests that have variations in parameters. +* For tests, use standard "asserts" of Python and ``pytest`` decorators/context managers for testing + rather than ``unittest`` ones. See `pytest docs `__ for details. +* Use a ``pytest.mark.parametrize`` marker for tests that have variations in parameters. + See `pytest docs `__ for details. * Use with ``pytest.warn`` to capture warnings rather than ``recwarn`` fixture. We are aiming for 0-warning in our - tests, so we run Pytest with ``--disable-warnings`` but instead we have ``pytest-capture-warnings`` plugin that - overrides ``recwarn`` fixture behaviour. + tests, so we run Pytest with ``--disable-warnings`` but instead we have custom warning capture system. + +Handling warnings +................. + +By default, in the new tests selected warnings are prohibited: + +* ``airflow.exceptions.AirflowProviderDeprecationWarning`` +* ``airflow.exceptions.RemovedInAirflow3Warning`` +* ``airflow.utils.context.AirflowContextDeprecationWarning`` + +That mean if one of this warning appear during test run and do not captured the test will failed. + +.. code-block:: console + + root@91e633d08aa8:/opt/airflow# pytest tests/models/test_dag.py::TestDag::test_clear_dag + ... + FAILED tests/models/test_dag.py::TestDag::test_clear_dag[None-None] - airflow.exceptions.RemovedInAirflow3Warning: Calling `DAG.create_dagrun()` without an explicit data interval is deprecated + +For avoid this make sure: + +* You do not use deprecated method, classes and arguments in your test cases; +* Your change do not affect other component, e.g. deprecate one part of Airflow Core or one of Community Supported + Providers might be a reason for new deprecation warnings. In this case changes should be also made in all affected + components in backward compatible way. +* You use ``pytest.warn`` (see `pytest doc `__ + context manager for catch warning during the test deprecated components. + Yes we still need to test legacy/deprecated stuff until it complitly removed) + +.. code-block:: python + + def test_deprecated_argument(): + with pytest.warn(AirflowProviderDeprecationWarning, match="expected warning pattern"): + SomeDeprecatedClass(foo="bar", spam="egg") Airflow configuration for unit tests diff --git a/pyproject.toml b/pyproject.toml index 1282a86896d1fb..79af6dba6f8617 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -456,7 +456,8 @@ fixture-parentheses = false # * Disable `flaky` plugin for pytest. This plugin conflicts with `rerunfailures` because provide same marker. # * Disable `nose` builtin plugin for pytest. This feature deprecated in 7.2 and will be removed in pytest>=8 # * And we focus on use native pytest capabilities rather than adopt another frameworks. -addopts = "-rasl --verbosity=2 -p no:flaky -p no:nose --asyncio-mode=strict" +# * Disable warnings summary, because we use our warning summary. +addopts = "-rasl --verbosity=2 -p no:flaky -p no:nose --asyncio-mode=strict --disable-warnings" norecursedirs = [ ".eggs", "airflow", @@ -472,10 +473,20 @@ filterwarnings = [ "error::pytest.PytestCollectionWarning", "ignore::DeprecationWarning:flask_appbuilder.filemanager", "ignore::DeprecationWarning:flask_appbuilder.widgets", + # FAB do not support SQLAclhemy 2 + "ignore::sqlalchemy.exc.MovedIn20Warning:flask_appbuilder", + # https://github.com/dpgaspar/Flask-AppBuilder/issues/2194 + "ignore::DeprecationWarning:marshmallow_sqlalchemy.convert", # https://github.com/dpgaspar/Flask-AppBuilder/pull/1940 "ignore::DeprecationWarning:flask_sqlalchemy", # https://github.com/dpgaspar/Flask-AppBuilder/pull/1903 "ignore::DeprecationWarning:apispec.utils", + # Connexion 2 use different deprecated objects, this should be resolved into Connexion 3 + # https://github.com/spec-first/connexion/pull/1536 + 'ignore::DeprecationWarning:connexion.spec', + 'ignore:jsonschema\.RefResolver:DeprecationWarning:connexion.json_schema', + 'ignore:jsonschema\.exceptions\.RefResolutionError:DeprecationWarning:connexion.json_schema', + 'ignore:Accessing jsonschema\.draft4_format_checker:DeprecationWarning:connexion.decorators.validation', ] python_files = [ "test_*.py", diff --git a/tests/conftest.py b/tests/conftest.py index 1fc785a15ad813..08755ec1d1b489 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -30,6 +30,7 @@ import pytest import time_machine +import yaml # We should set these before loading _any_ of the rest of airflow so that the # unit test mode config is set as early as possible. @@ -370,7 +371,6 @@ def pytest_configure(config: pytest.Config) -> None: ) pytest.exit(msg, returncode=6) - config.addinivalue_line("filterwarnings", "error::airflow.utils.context.AirflowContextDeprecationWarning") config.addinivalue_line("markers", "integration(name): mark test to run with named integration") config.addinivalue_line("markers", "backend(name): mark test to run with named backend") config.addinivalue_line("markers", "system(name): mark test to run with named system") @@ -1206,6 +1206,28 @@ def cleanup_providers_manager(): ProvidersManager()._cleanup() +@pytest.fixture(scope="session") +def deprecations_ignore() -> tuple[str, ...]: + with open(Path(__file__).absolute().parent.resolve() / "deprecations_ignore.yml") as fp: + return tuple(yaml.safe_load(fp)) + + +@pytest.fixture(autouse=True) +def check_deprecations(request: pytest.FixtureRequest, deprecations_ignore): + from airflow.exceptions import AirflowProviderDeprecationWarning, RemovedInAirflow3Warning + from airflow.utils.context import AirflowContextDeprecationWarning + + if request.node.nodeid.startswith(deprecations_ignore): + yield + return + + with warnings.catch_warnings(): + warnings.simplefilter("error", AirflowProviderDeprecationWarning) + warnings.simplefilter("error", RemovedInAirflow3Warning) + warnings.simplefilter("error", AirflowContextDeprecationWarning) + yield + + # The code below is a modified version of capture-warning code from # https://github.com/athinkingape/pytest-capture-warnings @@ -1246,54 +1268,24 @@ def pytest_runtest_call(item): """ Needed to grab the item.location information """ - global warnings_recorder - if os.environ.get("PYTHONWARNINGS") == "ignore": yield return - warnings_recorder.__enter__() - yield - warnings_recorder.__exit__(None, None, None) - - for warning in warnings_recorder.list: - # this code is adapted from python official warnings module - - # Search the filters - for filter in warnings.filters: - action, msg, cat, mod, ln = filter - - module = warning.filename or "" - if module[-3:].lower() == ".py": - module = module[:-3] # XXX What about leading pathname? - - if ( - (msg is None or msg.match(str(warning.message))) - and issubclass(warning.category, cat) - and (mod is None or mod.match(module)) - and (ln == 0 or warning.lineno == ln) - ): - break - else: - action = warnings.defaultaction - - # Early exit actions - if action == "ignore": - continue - - warning.item = item + with warnings.catch_warnings(record=True) as records: + yield + for record in records: quadruplet: tuple[str, int, type[Warning], str] = ( - warning.filename, - warning.lineno, - warning.category, - str(warning.message), + record.filename, + record.lineno, + record.category, + str(record.message), ) - if quadruplet in captured_warnings: captured_warnings_count[quadruplet] += 1 continue else: - captured_warnings[quadruplet] = warning + captured_warnings[quadruplet] = record captured_warnings_count[quadruplet] = 1 @@ -1314,11 +1306,12 @@ def format_test_function_location(item): yield if captured_warnings: - print("\n ======================== Warning summary =============================\n") - print(f" The tests generated {sum(captured_warnings_count.values())} warnings.") - print(f" After removing duplicates, {len(captured_warnings.values())} of them remained.") - print(f" They are stored in {warning_output_path} file.") - print("\n ======================================================================\n") + terminalreporter.section( + f"Warning summary. Total: {sum(captured_warnings_count.values())}, " + f"Unique: {len(captured_warnings.values())}", + yellow=True, + bold=True, + ) warnings_as_json = [] for warning in captured_warnings.values(): @@ -1348,6 +1341,9 @@ def format_test_function_location(item): for i in warnings_as_json: f.write(f'{i["path"]}:{i["lineno"]}: [W0513(warning), ] {i["warning_message"]}') f.write("\n") + terminalreporter.write("Warnings saved into ") + terminalreporter.write(os.fspath(warning_output_path), yellow=True) + terminalreporter.write(" file.\n") else: # nothing, clear file with warning_output_path.open("w") as f: diff --git a/tests/deprecations_ignore.yml b/tests/deprecations_ignore.yml new file mode 100644 index 00000000000000..d271e6077a25b9 --- /dev/null +++ b/tests/deprecations_ignore.yml @@ -0,0 +1,1051 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +--- + +# Skip: Integration and System Tests +- tests/integration/ +- tests/system/ +# Skip: DAGs for tests +- tests/dags/ +- tests/dags_corrupted/ +- tests/dags_with_system_exit/ + + +# Always +- tests/always/test_connection.py::TestConnection::test_connection_extra_no_encryption +- tests/always/test_connection.py::TestConnection::test_connection_extra_with_encryption +- tests/always/test_connection.py::TestConnection::test_connection_extra_with_encryption_rotate_fernet_key +- tests/always/test_connection.py::TestConnection::test_connection_from_uri +- tests/always/test_connection.py::TestConnection::test_connection_get_uri_from_conn +- tests/always/test_connection.py::TestConnection::test_connection_get_uri_from_uri +- tests/always/test_connection.py::TestConnection::test_connection_test_success +- tests/always/test_connection.py::TestConnection::test_from_json_extra +- tests/always/test_example_dags.py::test_should_be_importable + + +# API +- tests/api_connexion/endpoints/test_connection_endpoint.py::TestConnection::test_connection_env_is_cleaned_after_run +- tests/api_connexion/endpoints/test_connection_endpoint.py::TestConnection::test_should_respond_200 +- tests/api_connexion/endpoints/test_connection_endpoint.py::TestGetConnection::test_should_respond_200 +- tests/api_connexion/endpoints/test_connection_endpoint.py::TestPatchConnection::test_patch_should_respond_200 +- tests/api_connexion/endpoints/test_dag_run_endpoint.py::TestSetDagRunNote::test_should_respond_200_with_anonymous_user +- tests/api_connexion/endpoints/test_extra_link_endpoint.py::TestGetExtraLinks::test_should_raise_403_forbidden +- tests/api_connexion/endpoints/test_extra_link_endpoint.py::TestGetExtraLinks::test_should_respond_200 +- tests/api_connexion/endpoints/test_extra_link_endpoint.py::TestGetExtraLinks::test_should_respond_200_missing_xcom +- tests/api_connexion/endpoints/test_extra_link_endpoint.py::TestGetExtraLinks::test_should_respond_200_multiple_links +- tests/api_connexion/endpoints/test_extra_link_endpoint.py::TestGetExtraLinks::test_should_respond_200_multiple_links_missing_xcom +- tests/api_connexion/endpoints/test_extra_link_endpoint.py::TestGetExtraLinks::test_should_respond_200_support_plugins +- tests/api_connexion/endpoints/test_extra_link_endpoint.py::TestGetExtraLinks::test_should_respond_404 +- tests/api_connexion/endpoints/test_task_instance_endpoint.py::TestGetTaskInstancesBatch::test_should_respond_200 +- tests/api_connexion/endpoints/test_task_instance_endpoint.py::TestPostClearTaskInstances::test_should_respond_200 +- tests/api_connexion/schemas/test_connection_schema.py::TestConnectionSchema::test_serialize + + +# CLI +- tests/cli/commands/test_connection_command.py::TestCliAddConnections::test_cli_connection_add +- tests/cli/commands/test_connection_command.py::TestCliImportConnections::test_cli_connections_import_should_load_connections +- tests/cli/commands/test_connection_command.py::TestCliImportConnections::test_cli_connections_import_should_not_overwrite_existing_connections +- tests/cli/commands/test_connection_command.py::TestCliImportConnections::test_cli_connections_import_should_overwrite_existing_connections +- tests/cli/commands/test_dag_command.py::TestCliDags::test_backfill +- tests/cli/commands/test_dag_command.py::TestCliDags::test_backfill_fails_without_loading_dags +- tests/cli/commands/test_dag_command.py::TestCliDags::test_backfill_with_custom_timetable +- tests/cli/commands/test_dag_command.py::TestCliDags::test_cli_backfill_depends_on_past +- tests/cli/commands/test_dag_command.py::TestCliDags::test_cli_backfill_depends_on_past_backwards +- tests/cli/commands/test_kubernetes_command.py::TestGenerateDagYamlCommand::test_generate_dag_yaml +- tests/cli/commands/test_task_command.py::TestCliTasks::test_parentdag_downstream_clear +- tests/cli/commands/test_task_command.py::TestCliTasks::test_subdag_clear +- tests/cli/commands/test_task_command.py::TestCliTasks::test_task_states_for_dag_run +- tests/cli/commands/test_task_command.py::TestCliTasks::test_test +- tests/cli/commands/test_task_command.py::TestCliTasks::test_test_no_execution_date +- tests/cli/commands/test_task_command.py::TestCliTasks::test_test_with_existing_dag_run + + +# Core +- tests/core/test_core.py::TestCore::test_dag_params_and_task_params +- tests/core/test_core.py::TestCore::test_externally_triggered_dagrun +- tests/core/test_impersonation_tests.py::TestImpersonation::test_impersonation_subdag +- tests/core/test_stats.py::TestCustomStatsName::test_does_not_send_stats_using_statsd_when_the_name_is_not_valid +- tests/core/test_stats.py::TestCustomStatsName::test_does_send_stats_using_statsd_when_the_name_is_valid +- tests/core/test_stats.py::TestPatternOrBasicValidatorConfigOption::test_pattern_or_basic_picker +- tests/core/test_stats.py::TestPatternOrBasicValidatorConfigOption::test_setting_allow_and_block_logs_warning +- tests/core/test_stats.py::TestStats::test_enabled_by_config +- tests/core/test_stats.py::TestStats::test_load_allow_and_block_list_validator_loads_only_allow_list_validator +- tests/core/test_stats.py::TestStats::test_load_allow_list_validator +- tests/core/test_stats.py::TestStats::test_load_block_list_validator +- tests/core/test_stats.py::TestStats::test_load_custom_statsd_client +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_backfill_depends_on_past_backwards +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_backfill_depends_on_past_works_independently_on_ignore_depends_on_past +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_backfill_pooled_tasks +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_backfill_rerun_failed_tasks +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_backfill_rerun_failed_tasks_without_flag +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_backfill_rerun_upstream_failed_tasks +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_backfill_run_rescheduled +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_backfill_skip_active_scheduled_dagrun +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_reset_orphaned_tasks_with_orphans +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_subdag_clear_parentdag_downstream_clear +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_update_counters +- tests/jobs/test_backfill_job.py::TestBackfillJob::test_backfilling_dags +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_dagrun_timeout_logged_in_task_logs +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_failure_callback_called_by_airflow_run_raw_process +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_fast_follow +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_heartbeat_failed_fast +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_local_task_return_code_metric +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_localtaskjob_double_trigger +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_localtaskjob_maintain_heart_rate +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_mark_failure_on_failure_callback +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_mark_success_no_kill +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_mark_success_on_success_callback +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_mini_scheduler_works_with_wait_for_upstream +- tests/jobs/test_local_task_job.py::TestLocalTaskJob::test_process_os_signal_calls_on_failure_callback +- tests/jobs/test_local_task_job.py::TestSigtermOnRunner::test_process_sigterm_works_with_retries +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_adopt_or_reset_orphaned_tasks +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_bulk_write_to_db_external_trigger_dont_skip_scheduled_run +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_dagrun_deadlock_ignore_depends_on_past +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_dagrun_deadlock_ignore_depends_on_past_advance_ex_date +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_dagrun_fail +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_dagrun_root_fail +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_dagrun_root_fail_unfinished +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_dagrun_success +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_do_schedule_max_active_runs_dag_timed_out +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_find_zombies +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_find_zombies_handle_failure_callbacks_are_correctly_passed_to_dag_processor +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_infinite_pool +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_no_dagruns_would_stuck_in_running +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_not_enough_pool_slots +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_start_queued_dagruns_do_follow_execution_date_order +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_zombie_message +- tests/jobs/test_scheduler_job.py::TestSchedulerJob::test_mapped_dag +- tests/jobs/test_triggerer_job_logging.py::test_configure_trigger_log_handler_fallback_task +- tests/jobs/test_triggerer_job_logging.py::test_configure_trigger_log_handler_root_has_task_handler +- tests/jobs/test_triggerer_job_logging.py::test_configure_trigger_log_handler_root_not_file_task +- tests/jobs/test_triggerer_job_logging.py::test_configure_trigger_log_handler_root_old_file_task +- tests/models/test_baseoperatormeta.py::TestExecutorSafeguard::test_executor_when_classic_operator_called_from_decorated_task_with_allow_nested_operators_false +- tests/models/test_baseoperatormeta.py::TestExecutorSafeguard::test_executor_when_classic_operator_called_from_decorated_task_without_allow_nested_operators +- tests/models/test_cleartasks.py::TestClearTasks::test_dags_clear +- tests/models/test_dag.py::TestDag::test_bulk_write_to_db_interval_save_runtime +- tests/models/test_dag.py::TestDag::test_bulk_write_to_db_max_active_runs +- tests/models/test_dag.py::TestDag::test_clear_dag +- tests/models/test_dag.py::TestDag::test_clear_set_dagrun_state +- tests/models/test_dag.py::TestDag::test_clear_set_dagrun_state_for_mapped_task +- tests/models/test_dag.py::TestDag::test_clear_set_dagrun_state_for_parent_dag +- tests/models/test_dag.py::TestDag::test_clear_set_dagrun_state_for_subdag +- tests/models/test_dag.py::TestDag::test_continuous_schedule_interval_linmits_max_active_runs +- tests/models/test_dag.py::TestDag::test_create_dagrun_run_id_is_generated +- tests/models/test_dag.py::TestDag::test_create_dagrun_when_schedule_is_none_and_empty_start_date +- tests/models/test_dag.py::TestDag::test_dag_handle_callback_crash +- tests/models/test_dag.py::TestDag::test_dag_handle_callback_with_removed_task +- tests/models/test_dag.py::TestDag::test_dag_task_custom_weight_strategy +- tests/models/test_dag.py::TestDag::test_dag_topological_sort_include_subdag_tasks +- tests/models/test_dag.py::TestDag::test_description_from_timetable +- tests/models/test_dag.py::TestDag::test_existing_dag_is_paused_after_limit +- tests/models/test_dag.py::TestDag::test_following_previous_schedule +- tests/models/test_dag.py::TestDag::test_following_previous_schedule_daily_dag_cest_to_cet +- tests/models/test_dag.py::TestDag::test_following_previous_schedule_daily_dag_cet_to_cest +- tests/models/test_dag.py::TestDag::test_following_schedule_datetime_timezone +- tests/models/test_dag.py::TestDag::test_following_schedule_datetime_timezone_utc0530 +- tests/models/test_dag.py::TestDag::test_following_schedule_relativedelta +- tests/models/test_dag.py::TestDag::test_following_schedule_relativedelta_with_depr_schedule_interval_decorated_dag +- tests/models/test_dag.py::TestDag::test_following_schedule_relativedelta_with_deprecated_schedule_interval +- tests/models/test_dag.py::TestDag::test_fractional_seconds +- tests/models/test_dag.py::TestDag::test_get_num_task_instances +- tests/models/test_dag.py::TestDag::test_is_paused_subdag +- tests/models/test_dag.py::TestDag::test_next_dagrun_after_fake_scheduled_previous +- tests/models/test_dag.py::TestDag::test_next_dagrun_after_not_for_subdags +- tests/models/test_dag.py::TestDag::test_next_dagrun_info_start_end_dates +- tests/models/test_dag.py::TestDag::test_next_dagrun_info_timetable_exception +- tests/models/test_dag.py::TestDag::test_previous_schedule_datetime_timezone +- tests/models/test_dag.py::TestDag::test_return_date_range_with_num_method +- tests/models/test_dag.py::TestDag::test_schedule_dag_no_previous_runs +- tests/models/test_dag.py::TestDag::test_schedule_dag_once +- tests/models/test_dag.py::TestDag::test_schedule_interval_still_works +- tests/models/test_dag.py::TestDag::test_sync_to_db +- tests/models/test_dag.py::TestDag::test_sync_to_db_default_view +- tests/models/test_dag.py::TestDag::test_timetable_still_works +- tests/models/test_dag.py::TestDag::test_validate_params_on_trigger_dag +- tests/models/test_dag.py::TestQueries::test_count_number_queries +- tests/models/test_dag.py::test_dag_schedule_interval_change_after_init +- tests/models/test_dag.py::test_dag_timetable_match_schedule_interval +- tests/models/test_dag.py::test_iter_dagrun_infos_between_error +- tests/models/test_dagbag.py::TestDagBag::test_get_dag_registration +- tests/models/test_dagbag.py::TestDagBag::test_load_subdags +- tests/models/test_dagbag.py::TestDagBag::test_skip_cycle_dags +- tests/models/test_mappedoperator.py::test_expand_mapped_task_instance_with_named_index +- tests/models/test_pool.py::TestPool::test_default_pool_open_slots +- tests/models/test_pool.py::TestPool::test_infinite_slots +- tests/models/test_pool.py::TestPool::test_open_slots +- tests/models/test_pool.py::TestPool::test_open_slots_including_deferred +- tests/models/test_skipmixin.py::TestSkipMixin::test_mapped_tasks_skip_all_except +- tests/models/test_skipmixin.py::TestSkipMixin::test_raise_exception_on_not_accepted_branch_task_ids_type +- tests/models/test_skipmixin.py::TestSkipMixin::test_raise_exception_on_not_accepted_iterable_branch_task_ids_type +- tests/models/test_skipmixin.py::TestSkipMixin::test_raise_exception_on_not_valid_branch_task_ids +- tests/models/test_skipmixin.py::TestSkipMixin::test_skip_all_except +- tests/models/test_skipmixin.py::TestSkipMixin::test_skip_none_dagrun +- tests/models/test_taskinstance.py::TestTaskInstance::test_changing_of_dataset_when_ddrq_is_already_populated +- tests/models/test_taskinstance.py::TestTaskInstance::test_context_triggering_dataset_events +- tests/models/test_taskinstance.py::TestTaskInstance::test_get_num_running_task_instances +- tests/models/test_taskinstance.py::TestTaskInstance::test_get_previous_start_date_none +- tests/models/test_taskinstance.py::TestTaskInstance::test_handle_failure +- tests/models/test_taskinstance.py::TestTaskInstance::test_handle_failure_fail_stop +- tests/models/test_taskinstance.py::TestTaskInstance::test_outlet_datasets +- tests/models/test_taskinstance.py::TestTaskInstance::test_template_with_custom_timetable_deprecated_context +- tests/models/test_taskinstance.py::TestTaskInstance::test_xcom_pull +- tests/models/test_taskinstance.py::TestTaskInstance::test_xcom_pull_different_execution_date +- tests/models/test_taskinstance.py::TestTaskInstance::test_outlet_dataset_extra +- tests/models/test_taskinstance.py::TestTaskInstance::test_outlet_dataset_extra_ignore_different +- tests/models/test_timestamp.py::test_timestamp_behaviour +- tests/models/test_timestamp.py::test_timestamp_behaviour_with_timezone +- tests/models/test_xcom.py::TestXCom::test_set_serialize_call_old_signature +- tests/ti_deps/deps/test_prev_dagrun_dep.py::TestPrevDagrunDep::test_first_task_run_of_new_task +- tests/utils/log/test_log_reader.py::TestLogView::test_read_log_stream_should_read_each_try_in_turn +- tests/utils/log/test_log_reader.py::TestLogView::test_read_log_stream_should_support_multiple_chunks +- tests/utils/log/test_log_reader.py::TestLogView::test_supports_external_link +- tests/utils/log/test_log_reader.py::TestLogView::test_task_log_filename_unique +- tests/utils/log/test_log_reader.py::TestLogView::test_test_read_log_chunks_should_read_all_files +- tests/utils/log/test_log_reader.py::TestLogView::test_test_read_log_chunks_should_read_one_try +- tests/utils/log/test_log_reader.py::TestLogView::test_test_test_read_log_stream_should_read_all_logs +- tests/utils/log/test_log_reader.py::TestLogView::test_test_test_read_log_stream_should_read_one_try +- tests/utils/test_cli_util.py::TestCliUtil::test_get_dags +- tests/utils/test_dates.py::TestDates::test_days_ago +- tests/utils/test_dates.py::TestUtilsDatesDateRange::test_both_end_date_and_num_given +- tests/utils/test_dates.py::TestUtilsDatesDateRange::test_delta_cron_presets +- tests/utils/test_dates.py::TestUtilsDatesDateRange::test_end_date_before_start_date +- tests/utils/test_dates.py::TestUtilsDatesDateRange::test_invalid_delta +- tests/utils/test_dates.py::TestUtilsDatesDateRange::test_negative_num_given +- tests/utils/test_dates.py::TestUtilsDatesDateRange::test_no_delta +- tests/utils/test_dates.py::TestUtilsDatesDateRange::test_positive_num_given +- tests/utils/test_db_cleanup.py::TestDBCleanup::test_no_models_missing +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime_complete_failure +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime_custom_timeout_retrylimit +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime_dryrun +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime_noauth +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime_partial_failure +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime_ssl_complete_failure +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime_ssl_default_context_if_not_set +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime_ssl_default_context_with_value_set_to_default +- tests/utils/test_email.py::TestEmailSmtp::test_send_mime_ssl_none_context +- tests/utils/test_log_handlers.py::TestFileTaskLogHandler::test_file_task_handler +- tests/utils/test_log_handlers.py::TestFileTaskLogHandler::test_file_task_handler_running +- tests/utils/test_log_handlers.py::TestFileTaskLogHandler::test_file_task_handler_when_ti_value_is_invalid +- tests/utils/test_log_handlers.py::TestFileTaskLogHandler::test_read_from_k8s_under_multi_namespace_mode +- tests/utils/test_sqlalchemy.py::TestSqlAlchemyUtils::test_process_bind_param_naive +- tests/utils/test_sqlalchemy.py::TestSqlAlchemyUtils::test_utc_transformations +- tests/utils/test_state.py::test_dagrun_state_enum_escape +- tests/utils/test_task_handler_with_custom_formatter.py::test_custom_formatter_custom_format_not_affected_by_config +- tests/utils/test_task_handler_with_custom_formatter.py::test_custom_formatter_default_format +- tests/utils/test_types.py::test_runtype_enum_escape + + +# Operators +- tests/operators/test_bash.py::TestBashOperator::test_echo_env_variables +- tests/operators/test_branch_operator.py::TestBranchOperator::test_with_dag_run +- tests/operators/test_branch_operator.py::TestBranchOperator::test_with_skip_in_branch_downstream_dependencies +- tests/operators/test_branch_operator.py::TestBranchOperator::test_xcom_push +- tests/operators/test_datetime.py::TestBranchDateTimeOperator::test_branch_datetime_operator_falls_outside_range +- tests/operators/test_datetime.py::TestBranchDateTimeOperator::test_branch_datetime_operator_falls_within_range +- tests/operators/test_datetime.py::TestBranchDateTimeOperator::test_branch_datetime_operator_lower_comparison_outside_range +- tests/operators/test_datetime.py::TestBranchDateTimeOperator::test_branch_datetime_operator_lower_comparison_within_range +- tests/operators/test_datetime.py::TestBranchDateTimeOperator::test_branch_datetime_operator_upper_comparison_outside_range +- tests/operators/test_datetime.py::TestBranchDateTimeOperator::test_branch_datetime_operator_upper_comparison_within_range +- tests/operators/test_datetime.py::TestBranchDateTimeOperator::test_branch_datetime_operator_use_task_logical_date +- tests/operators/test_datetime.py::TestBranchDateTimeOperator::test_deprecation_warning +- tests/operators/test_datetime.py::TestBranchDateTimeOperator::test_no_target_time +- tests/operators/test_latest_only_operator.py::TestLatestOnlyOperator::test_not_skipping_external +- tests/operators/test_latest_only_operator.py::TestLatestOnlyOperator::test_skipping_non_latest +- tests/operators/test_python.py::TestBranchOperator::test_clear_skipped_downstream_task +- tests/operators/test_python.py::TestBranchOperator::test_empty_branch +- tests/operators/test_python.py::TestBranchOperator::test_with_dag_run +- tests/operators/test_python.py::TestBranchOperator::test_with_skip_in_branch_downstream_dependencies +- tests/operators/test_python.py::TestBranchOperator::test_with_skip_in_branch_downstream_dependencies2 +- tests/operators/test_python.py::TestBranchOperator::test_xcom_push +- tests/operators/test_python.py::TestShortCircuitOperator::test_clear_skipped_downstream_task +- tests/operators/test_python.py::TestShortCircuitOperator::test_mapped_xcom_push_skipped_tasks +- tests/operators/test_python.py::TestShortCircuitOperator::test_short_circuiting +- tests/operators/test_python.py::TestShortCircuitOperator::test_xcom_push +- tests/operators/test_python.py::TestShortCircuitOperator::test_xcom_push_skipped_tasks +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_execute_create_dagrun_wait_until_success +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_execute_create_dagrun_with_conf +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_execute_dagrun_failed +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_execute_skip_if_dagrun_success +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_rerun_failed_subdag +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_subdag_in_context_manager +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_subdag_name +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_subdag_pools +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_subdag_pools_no_possible_conflict +- tests/operators/test_subdag_operator.py::TestSubDagOperator::test_subdag_with_propagate_skipped_state +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_custom_run_id +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_operator_conf +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_operator_templated_conf +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_twice +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_execution_date +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_reset_dag_run_false +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_reset_dag_run_false_fail +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_reset_dag_run_true +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_scheduled_dag_run +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_templated_execution_date +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_wait_for_completion_true +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_wait_for_completion_true_defer_false +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_wait_for_completion_true_defer_true +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_wait_for_completion_true_defer_true_failure +- tests/operators/test_trigger_dagrun.py::TestDagRunOperator::test_trigger_dagrun_with_wait_for_completion_true_defer_true_failure_2 +- tests/operators/test_weekday.py::TestBranchDayOfWeekOperator::test_branch_follow_false +- tests/operators/test_weekday.py::TestBranchDayOfWeekOperator::test_branch_follow_true +- tests/operators/test_weekday.py::TestBranchDayOfWeekOperator::test_branch_follow_true_with_execution_date +- tests/operators/test_weekday.py::TestBranchDayOfWeekOperator::test_branch_xcom_push_true_branch + + +# BranchPythonVenv +- tests/operators/test_python.py::TestBranchPythonVirtualenvOperator::test_clear_skipped_downstream_task +- tests/operators/test_python.py::TestBranchPythonVirtualenvOperator::test_with_dag_run +- tests/operators/test_python.py::TestBranchPythonVirtualenvOperator::test_with_skip_in_branch_downstream_dependencies +- tests/operators/test_python.py::TestBranchPythonVirtualenvOperator::test_with_skip_in_branch_downstream_dependencies2 +- tests/operators/test_python.py::TestBranchPythonVirtualenvOperator::test_xcom_push + + +# BranchExternalPython +- tests/operators/test_python.py::TestBranchExternalPythonOperator::test_clear_skipped_downstream_task +- tests/operators/test_python.py::TestBranchExternalPythonOperator::test_with_dag_run +- tests/operators/test_python.py::TestBranchExternalPythonOperator::test_with_skip_in_branch_downstream_dependencies +- tests/operators/test_python.py::TestBranchExternalPythonOperator::test_with_skip_in_branch_downstream_dependencies2 +- tests/operators/test_python.py::TestBranchExternalPythonOperator::test_xcom_push + + +# PythonVenv +- tests/operators/test_python.py::TestPythonVirtualenvOperator::test_base_context +- tests/operators/test_python.py::TestPythonVirtualenvOperator::test_pendulum_context + + +# PlainAsserts +- tests/operators/test_python.py::TestPythonVirtualenvOperator::test_airflow_context + + +# Serialization +- tests/serialization/test_dag_serialization.py::TestStringifiedDAGs::test_custom_dep_detector +- tests/serialization/test_dag_serialization.py::TestStringifiedDAGs::test_dag_params_roundtrip +- tests/serialization/test_dag_serialization.py::TestStringifiedDAGs::test_task_params_roundtrip +- tests/serialization/test_pydantic_models.py::test_serializing_pydantic_dataset_event + + +# WWW +- tests/www/test_utils.py::test_dag_run_custom_sqla_interface_delete_no_collateral_damage +- tests/www/views/test_views_acl.py::test_success +- tests/www/views/test_views_cluster_activity.py::test_historical_metrics_data +- tests/www/views/test_views_cluster_activity.py::test_historical_metrics_data_date_filters +- tests/www/views/test_views_grid.py::test_grid_data_filtered_on_run_type_and_run_state +- tests/www/views/test_views_grid.py::test_one_run +- tests/www/views/test_views_grid.py::test_query_count +- tests/www/views/test_views_rendered.py::test_rendered_task_detail_env_secret +- tests/www/views/test_views_tasks.py::test_action_muldelete_task_instance +- tests/www/views/test_views_tasks.py::test_code +- tests/www/views/test_views_tasks.py::test_code_from_db +- tests/www/views/test_views_tasks.py::test_code_from_db_all_example_dags +- tests/www/views/test_views_tasks.py::test_dag_never_run +- tests/www/views/test_views_tasks.py::test_delete_dag_button_for_dag_on_scheduler_only +- tests/www/views/test_views_tasks.py::test_delete_just_dag_per_dag_permissions +- tests/www/views/test_views_tasks.py::test_delete_just_dag_resource_permissions +- tests/www/views/test_views_tasks.py::test_external_log_redirect_link_with_external_log_handler_not_shown +- tests/www/views/test_views_tasks.py::test_gantt_trigger_origin_grid_view +- tests/www/views/test_views_tasks.py::test_graph_trigger_origin_grid_view +- tests/www/views/test_views_tasks.py::test_graph_view_doesnt_fail_on_recursion_error +- tests/www/views/test_views_tasks.py::test_graph_view_without_dag_permission +- tests/www/views/test_views_tasks.py::test_last_dagruns +- tests/www/views/test_views_tasks.py::test_last_dagruns_success_when_selecting_dags +- tests/www/views/test_views_tasks.py::test_rendered_k8s +- tests/www/views/test_views_tasks.py::test_rendered_k8s_without_k8s +- tests/www/views/test_views_tasks.py::test_rendered_task_view +- tests/www/views/test_views_tasks.py::test_show_external_log_redirect_link_with_external_log_handler +- tests/www/views/test_views_tasks.py::test_show_external_log_redirect_link_with_local_log_handler +- tests/www/views/test_views_tasks.py::test_task_instance_clear +- tests/www/views/test_views_tasks.py::test_task_instance_clear_downstream +- tests/www/views/test_views_tasks.py::test_task_instance_clear_failure +- tests/www/views/test_views_tasks.py::test_task_instance_delete +- tests/www/views/test_views_tasks.py::test_task_instance_delete_permission_denied +- tests/www/views/test_views_tasks.py::test_task_instance_set_state +- tests/www/views/test_views_tasks.py::test_task_instance_set_state_failure +- tests/www/views/test_views_tasks.py::test_task_instances +- tests/www/views/test_views_tasks.py::test_tree_trigger_origin_tree_view +- tests/www/views/test_views_tasks.py::test_views_get +- tests/www/views/test_views_tasks.py::test_views_post +- tests/www/views/test_views_tasks.py::test_xcom_return_value_is_not_bytes + + +# Unclassified (OTHER) +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_dag_file_processor_only_collect_emails_from_sla_missed_tasks +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_dag_file_processor_sla_miss_callback +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_dag_file_processor_sla_miss_callback_exception +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_dag_file_processor_sla_miss_callback_invalid_sla +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_dag_file_processor_sla_miss_callback_sent_notification +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_dag_file_processor_sla_miss_continue_checking_the_task_instances_after_recording_missing_sla +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_dag_file_processor_sla_miss_deleted_task +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_dag_file_processor_sla_miss_doesnot_raise_integrity_error +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_dag_file_processor_sla_miss_email_exception +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_execute_on_failure_callbacks +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_execute_on_failure_callbacks_without_dag +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_failure_callbacks_should_not_drop_hostname +- tests/dag_processing/test_processor.py::TestDagFileProcessor::test_process_file_should_failure_callback +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_fail_multiple_outputs_key_type +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_fail_multiple_outputs_no_dict +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_manual_multiple_outputs_false_with_typings +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_multiple_outputs +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_multiple_outputs_empty_dict +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_multiple_outputs_ignore_typing +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_multiple_outputs_return_none +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_python_callable_arguments_are_templatized +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_python_callable_keyword_arguments_are_templatized +- tests/decorators/test_python.py::TestAirflowTaskDecorator::test_xcom_arg +- tests/decorators/test_python.py::test_task_decorator_dataset +- tests/decorators/test_python_virtualenv.py::TestPythonVirtualenvDecorator::test_no_system_site_packages +- tests/decorators/test_python_virtualenv.py::TestPythonVirtualenvDecorator::test_python_3 +- tests/decorators/test_python_virtualenv.py::TestPythonVirtualenvDecorator::test_system_site_packages +- tests/decorators/test_python_virtualenv.py::TestPythonVirtualenvDecorator::test_unpinned_requirements +- tests/decorators/test_python_virtualenv.py::TestPythonVirtualenvDecorator::test_with_requirements_file +- tests/decorators/test_python_virtualenv.py::TestPythonVirtualenvDecorator::test_with_requirements_pinned +- tests/lineage/test_lineage.py::TestLineage::test_lineage_is_sent_to_backend +- tests/listeners/test_dataset_listener.py::test_dataset_listener_on_dataset_changed_gets_calls +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_dag_sensor +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_dag_sensor_log +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_dag_sensor_soft_fail_as_skipped +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_task_group_not_exists_without_check_existence +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_task_group_sensor_failed_states +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_task_group_sensor_success +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_task_group_when_there_is_no_TIs +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_task_group_with_mapped_tasks_failed_states +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_task_group_with_mapped_tasks_sensor_success +- tests/sensors/test_external_task_sensor.py::TestExternalTaskSensor::test_external_task_sensor_with_task_group +- tests/sensors/test_external_task_sensor.py::test_clear_multiple_external_task_marker +- tests/sensors/test_external_task_sensor.py::test_external_task_marker_clear_activate +- tests/sensors/test_external_task_sensor.py::test_external_task_marker_cyclic_deep +- tests/sensors/test_external_task_sensor.py::test_external_task_marker_cyclic_shallow +- tests/sensors/test_external_task_sensor.py::test_external_task_marker_exception +- tests/sensors/test_external_task_sensor.py::test_external_task_marker_future +- tests/sensors/test_external_task_sensor.py::test_external_task_marker_transitive +- tests/sensors/test_timeout_sensor.py::TestSensorTimeout::test_timeout +- tests/triggers/test_external_task.py::TestTaskStateTrigger::test_task_state_trigger_success + + +# Providers +- tests/providers/amazon/aws/deferrable/hooks/test_base_aws.py::TestAwsBaseAsyncHook::test_get_client_async +- tests/providers/amazon/aws/deferrable/hooks/test_redshift_cluster.py::TestRedshiftAsyncHook::test_cluster_status +- tests/providers/amazon/aws/deferrable/hooks/test_redshift_cluster.py::TestRedshiftAsyncHook::test_get_cluster_status +- tests/providers/amazon/aws/deferrable/hooks/test_redshift_cluster.py::TestRedshiftAsyncHook::test_get_cluster_status_exception +- tests/providers/amazon/aws/deferrable/hooks/test_redshift_cluster.py::TestRedshiftAsyncHook::test_pause_cluster +- tests/providers/amazon/aws/deferrable/hooks/test_redshift_cluster.py::TestRedshiftAsyncHook::test_resume_cluster +- tests/providers/amazon/aws/deferrable/hooks/test_redshift_cluster.py::TestRedshiftAsyncHook::test_resume_cluster_exception +- tests/providers/amazon/aws/hooks/test_base_aws.py::TestAwsBaseHook::test_hook_connection_test_failed +- tests/providers/amazon/aws/hooks/test_emr.py::TestEmrHook::test_create_job_flow_extra_args +- tests/providers/amazon/aws/hooks/test_emr.py::TestEmrHook::test_get_cluster_id_by_name_pagination +- tests/providers/amazon/aws/hooks/test_redshift_cluster.py::TestRedshiftHook::test_cluster_status_returns_available_cluster +- tests/providers/amazon/aws/hooks/test_redshift_cluster.py::TestRedshiftHook::test_create_cluster_snapshot_returns_snapshot_data +- tests/providers/amazon/aws/hooks/test_redshift_cluster.py::TestRedshiftHook::test_delete_cluster_returns_a_dict_with_cluster_data +- tests/providers/amazon/aws/hooks/test_redshift_cluster.py::TestRedshiftHook::test_get_client_type_returns_a_boto3_client_of_the_requested_type +- tests/providers/amazon/aws/hooks/test_redshift_cluster.py::TestRedshiftHook::test_restore_from_cluster_snapshot_returns_dict_with_cluster_data +- tests/providers/amazon/aws/hooks/test_s3.py::TestAwsS3Hook::test_create_bucket_us_standard_region +- tests/providers/amazon/aws/hooks/test_s3.py::TestAwsS3Hook::test_delete_bucket_if_bucket_exist +- tests/providers/amazon/aws/hooks/test_sagemaker.py::TestSageMakerHook::test_start_pipeline_waits_for_completion +- tests/providers/amazon/aws/hooks/test_sagemaker.py::TestSageMakerHook::test_stop_pipeline_waits_for_completion +- tests/providers/amazon/aws/hooks/test_sagemaker.py::TestSageMakerHook::test_stop_pipeline_waits_for_completion_even_when_already_stopped +- tests/providers/amazon/aws/operators/test_appflow.py::test_base_aws_op_attributes +- tests/providers/amazon/aws/operators/test_appflow.py::test_run +- tests/providers/amazon/aws/operators/test_base_aws.py::TestAwsBaseOperator::test_conflicting_region_name +- tests/providers/amazon/aws/operators/test_batch.py::TestBatchOperator::test_override_not_sent_if_not_set +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsBaseOperator::test_initialise_operator +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsBaseOperator::test_initialise_operator_hook +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsCreateClusterOperator::test_execute_deferrable +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsDeleteClusterOperator::test_execute_deferrable +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsDeregisterTaskDefinitionOperator::test_execute_immediate_delete +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_check_success_task_not_raises +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_check_success_tasks_handles_initialization_failure +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_check_success_tasks_raises_cloudwatch_logs +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_check_success_tasks_raises_cloudwatch_logs_empty +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_check_success_tasks_raises_failed_to_start +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_check_success_tasks_raises_logs_disabled +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_check_success_tasks_raises_multiple +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_check_success_tasks_raises_pending +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_execute_complete +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_execute_with_failures +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_execute_without_failures +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_execute_xcom_disabled +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_execute_xcom_with_log +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_execute_xcom_with_no_log +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_execute_xcom_with_no_log_fetcher +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_host_terminated_raises +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_init +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_partial_ambiguous_region +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_partial_deprecated_region +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_reattach_save_task_arn_xcom +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_reattach_successful +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_task_id_parsing +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_template_fields_overrides +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_wait_end_tasks +- tests/providers/amazon/aws/operators/test_ecs.py::TestEcsRunTaskOperator::test_with_defer +- tests/providers/amazon/aws/operators/test_eks.py::TestEksPodOperator::test_on_finish_action_handler +- tests/providers/amazon/aws/operators/test_emr_create_job_flow.py::TestEmrCreateJobFlowOperator::test_create_job_flow_deferrable +- tests/providers/amazon/aws/operators/test_emr_create_job_flow.py::TestEmrCreateJobFlowOperator::test_execute_returns_job_id +- tests/providers/amazon/aws/operators/test_emr_create_job_flow.py::TestEmrCreateJobFlowOperator::test_execute_with_wait +- tests/providers/amazon/aws/operators/test_emr_create_job_flow.py::TestEmrCreateJobFlowOperator::test_init +- tests/providers/amazon/aws/operators/test_emr_create_job_flow.py::TestEmrCreateJobFlowOperator::test_render_template +- tests/providers/amazon/aws/operators/test_emr_create_job_flow.py::TestEmrCreateJobFlowOperator::test_render_template_from_file +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestEmrStartNotebookExecutionOperator::test_start_notebook_execution_http_code_fail +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestEmrStartNotebookExecutionOperator::test_start_notebook_execution_no_wait_for_completion +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestEmrStartNotebookExecutionOperator::test_start_notebook_execution_wait_for_completion +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestEmrStartNotebookExecutionOperator::test_start_notebook_execution_wait_for_completion_fail_state +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestEmrStartNotebookExecutionOperator::test_start_notebook_execution_wait_for_completion_multiple_attempts +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestStopEmrNotebookExecutionOperator::test_stop_notebook_execution +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestStopEmrNotebookExecutionOperator::test_stop_notebook_execution_wait_for_completion +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestStopEmrNotebookExecutionOperator::test_stop_notebook_execution_wait_for_completion_fail_state +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestStopEmrNotebookExecutionOperator::test_stop_notebook_execution_wait_for_completion_multiple_attempts +- tests/providers/amazon/aws/operators/test_emr_notebook_execution.py::TestStopEmrNotebookExecutionOperator::test_stop_notebook_execution_waiter_config +- tests/providers/amazon/aws/operators/test_emr_serverless.py::TestEmrServerlessCreateApplicationOperator::test_create_application_waiter_params +- tests/providers/amazon/aws/operators/test_emr_serverless.py::TestEmrServerlessDeleteOperator::test_delete_application_waiter_params +- tests/providers/amazon/aws/operators/test_emr_serverless.py::TestEmrServerlessStartJobOperator::test_start_job_waiter_params +- tests/providers/amazon/aws/secrets/test_secrets_manager.py +- tests/providers/amazon/aws/secrets/test_systems_manager.py +- tests/providers/amazon/aws/sensors/test_base_aws.py::TestAwsBaseSensor::test_conflicting_region_name +- tests/providers/amazon/aws/sensors/test_cloud_formation.py::TestCloudFormationCreateStackSensor::test_poke +- tests/providers/amazon/aws/sensors/test_ecs.py::TestEcsBaseSensor::test_hook_and_client +- tests/providers/amazon/aws/sensors/test_ecs.py::TestEcsBaseSensor::test_initialise_operator +- tests/providers/amazon/aws/sensors/test_glue_catalog_partition.py::TestGlueCatalogPartitionSensor::test_poke_default_args +- tests/providers/amazon/aws/sensors/test_rds.py::TestRdsExportTaskExistenceSensor::test_export_task_poke_true +- tests/providers/amazon/aws/sensors/test_redshift_cluster.py::TestRedshiftClusterSensor::test_poke +- tests/providers/amazon/aws/triggers/test_redshift_cluster.py::TestRedshiftClusterTrigger::test_redshift_cluster_sensor_trigger_exception +- tests/providers/amazon/aws/triggers/test_redshift_cluster.py::TestRedshiftClusterTrigger::test_redshift_cluster_sensor_trigger_resuming_status +- tests/providers/amazon/aws/triggers/test_redshift_cluster.py::TestRedshiftClusterTrigger::test_redshift_cluster_sensor_trigger_success +- tests/providers/amazon/aws/utils/test_connection_wrapper.py::TestAwsConnectionWrapper::test_get_endpoint_url_from_extra +- tests/providers/apache/livy/operators/test_livy.py::TestLivyOperator::test_execution_with_extra_options +- tests/providers/apache/spark/operators/test_spark_sql.py::TestSparkSqlOperator::test_execute +- tests/providers/atlassian/jira/operators/test_jira.py::TestJiraOperator::test_issue_search +- tests/providers/atlassian/jira/operators/test_jira.py::TestJiraOperator::test_project_issue_count +- tests/providers/atlassian/jira/operators/test_jira.py::TestJiraOperator::test_update_issue +- tests/providers/atlassian/jira/sensors/test_jira.py::TestJiraSensor::test_issue_label_set +- tests/providers/cncf/kubernetes/decorators/test_kubernetes.py::test_basic_kubernetes +- tests/providers/cncf/kubernetes/decorators/test_kubernetes.py::test_kubernetes_with_input_output +- tests/providers/cncf/kubernetes/executors/test_kubernetes_executor.py::TestAirflowKubernetesScheduler::test_create_pod_id +- tests/providers/cncf/kubernetes/executors/test_kubernetes_executor.py::TestKubernetesExecutor::test_pod_template_file_override_in_executor_config +- tests/providers/cncf/kubernetes/executors/test_kubernetes_executor.py::TestKubernetesExecutor::test_run_next_exception_requeue +- tests/providers/cncf/kubernetes/executors/test_kubernetes_executor.py::TestKubernetesExecutor::test_run_next_pmh_error +- tests/providers/cncf/kubernetes/executors/test_kubernetes_executor.py::TestKubernetesExecutor::test_run_next_pod_reconciliation_error +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_backoff_limit_correctly_set +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_completion_mode_correctly_set +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_completions_correctly_set +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_full_job_spec +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_full_job_spec_kwargs +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_job_template_file +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_job_template_file_kwargs_override +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_manual_selector_correctly_set +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_parallelism_correctly_set +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_provided_job_name +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_selector +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_suspend_correctly_set +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_task_id_as_name +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_task_id_as_name_dag_id_is_ignored +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_task_id_as_name_with_suffix +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_task_id_as_name_with_suffix_very_long +- tests/providers/cncf/kubernetes/operators/test_job.py::TestKubernetesJobOperator::test_ttl_seconds_after_finished_correctly_set +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_config_path +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_container_security_context +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_create_with_affinity +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_envs_from_configmaps +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_envs_from_configmaps_backcompat +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_envs_from_secrets +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_execute_async_callbacks +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_execute_sync_callbacks +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_find_pod_labels +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_full_pod_spec +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_full_pod_spec_kwargs +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_get_logs_but_not_for_base_container +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_host_aliases +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_image_pull_policy_correctly_set +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_image_pull_secrets_correctly_set +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_labels +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_labels_mapped +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_mark_checked_if_not_deleted +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_mark_checked_unexpected_exception +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_no_handle_failure_on_success +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_node_selector +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_omitted_name +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_omitted_namespace_no_conn +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_omitted_namespace_no_conn_not_in_k8s +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_omitted_namespace_with_conn +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_omitted_namespace_with_conn_no_value +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_patch_already_checked +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_pod_delete_after_await_container_error +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_pod_delete_not_called_when_creation_fails +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_pod_dns_options +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_pod_template_dict +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_pod_template_file +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_pod_template_file_kwargs_override +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_pod_with_istio_delete_after_await_container_error +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_previous_pods_ignored_for_reattached +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_provided_pod_name +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_push_xcom_pod_info +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_security_context +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_task_id_as_name +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_task_id_as_name_dag_id_is_ignored +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_task_id_as_name_with_suffix +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_task_id_as_name_with_suffix_very_long +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_task_skip_when_pod_exit_with_certain_code +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_termination_message_policy_correctly_set +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_termination_message_policy_default_value_correctly_set +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_tolerations +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_wait_for_xcom_sidecar_iff_push_xcom +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_xcom_sidecar_container_image_custom +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_xcom_sidecar_container_image_default +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_xcom_sidecar_container_resources_custom +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperator::test_xcom_sidecar_container_resources_default +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperatorAsync::test_async_create_pod_should_throw_exception +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperatorAsync::test_async_create_pod_with_skip_on_exit_code_should_skip +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperatorAsync::test_async_create_pod_xcom_push_should_execute_successfully +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperatorAsync::test_async_get_logs_should_execute_successfully +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperatorAsync::test_async_write_logs_should_execute_successfully +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperatorAsync::test_async_xcom_sidecar_container_image_default_should_execute_successfully +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperatorAsync::test_async_xcom_sidecar_container_resources_default_should_execute_successfully +- tests/providers/cncf/kubernetes/operators/test_pod.py::TestKubernetesPodOperatorAsync::test_cleanup_log_pod_spec_on_failure +- tests/providers/cncf/kubernetes/operators/test_pod.py::test_async_kpo_wait_termination_before_cleanup_on_failure +- tests/providers/cncf/kubernetes/operators/test_pod.py::test_async_kpo_wait_termination_before_cleanup_on_success +- tests/providers/cncf/kubernetes/operators/test_pod.py::test_async_skip_kpo_wait_termination_with_timeout_event +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::TestSparkKubernetesOperator::test_affinity +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::TestSparkKubernetesOperator::test_create_application_from_yaml_json +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::TestSparkKubernetesOperator::test_env +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::TestSparkKubernetesOperator::test_new_template_from_yaml +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::TestSparkKubernetesOperator::test_pull_secret +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::TestSparkKubernetesOperator::test_template_spec +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::TestSparkKubernetesOperator::test_toleration +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::TestSparkKubernetesOperator::test_volume +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::test_resolve_application_file_real_file +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::test_resolve_application_file_real_file_not_exists +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::test_resolve_application_file_template_file +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::test_resolve_application_file_template_non_dictionary +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::test_spark_kubernetes_operator +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::test_spark_kubernetes_operator_hook +- tests/providers/cncf/kubernetes/operators/test_spark_kubernetes.py::test_template_body_templating +- tests/providers/cncf/kubernetes/test_kubernetes_helper_functions.py::TestCreatePodId::test_create_pod_id +- tests/providers/cncf/kubernetes/test_kubernetes_helper_functions.py::TestCreatePodId::test_create_pod_id_dag_and_task +- tests/providers/cncf/kubernetes/test_kubernetes_helper_functions.py::TestCreatePodId::test_create_pod_id_dag_only +- tests/providers/cncf/kubernetes/test_kubernetes_helper_functions.py::TestCreatePodId::test_create_pod_id_dag_too_long_non_unique +- tests/providers/cncf/kubernetes/test_kubernetes_helper_functions.py::TestCreatePodId::test_create_pod_id_dag_too_long_with_suffix +- tests/providers/cncf/kubernetes/test_kubernetes_helper_functions.py::TestCreatePodId::test_create_pod_id_task_only +- tests/providers/cncf/kubernetes/test_pod_generator.py::TestPodGenerator::test_ensure_max_identifier_length +- tests/providers/cncf/kubernetes/test_pod_generator.py::TestPodGenerator::test_from_obj +- tests/providers/cncf/kubernetes/test_pod_generator.py::TestPodGenerator::test_gen_pod_extract_xcom +- tests/providers/cncf/kubernetes/test_pod_generator.py::TestPodGenerator::test_pod_name_confirm_to_max_length +- tests/providers/cncf/kubernetes/test_pod_generator.py::TestPodGenerator::test_pod_name_is_valid +- tests/providers/cncf/kubernetes/test_template_rendering.py::test_render_k8s_pod_yaml +- tests/providers/common/sql/hooks/test_dbapi.py::TestDbApiHook::test_instance_check_works_for_legacy_db_api_hook +- tests/providers/common/sql/operators/test_sql.py::TestSQLCheckOperatorDbHook::test_get_hook +- tests/providers/common/sql/operators/test_sql.py::TestSqlBranch::test_branch_false_with_dag_run +- tests/providers/common/sql/operators/test_sql.py::TestSqlBranch::test_branch_list_with_dag_run +- tests/providers/common/sql/operators/test_sql.py::TestSqlBranch::test_branch_single_value_with_dag_run +- tests/providers/common/sql/operators/test_sql.py::TestSqlBranch::test_branch_true_with_dag_run +- tests/providers/common/sql/operators/test_sql.py::TestSqlBranch::test_invalid_query_result_with_dag_run +- tests/providers/common/sql/operators/test_sql.py::TestSqlBranch::test_sql_branch_operator_mysql +- tests/providers/common/sql/operators/test_sql.py::TestSqlBranch::test_sql_branch_operator_postgres +- tests/providers/common/sql/operators/test_sql.py::TestSqlBranch::test_with_skip_in_branch_downstream_dependencies +- tests/providers/common/sql/operators/test_sql.py::TestSqlBranch::test_with_skip_in_branch_downstream_dependencies2 +- tests/providers/common/sql/operators/test_sql.py::TestTableCheckOperator::test_sql_check +- tests/providers/common/sql/operators/test_sql.py::TestTableCheckOperator::test_sql_check_partition_clause_templating +- tests/providers/common/sql/sensors/test_sql.py::TestSqlSensor::test_sql_sensor_mysql +- tests/providers/common/sql/sensors/test_sql.py::TestSqlSensor::test_sql_sensor_postgres +- tests/providers/databricks/hooks/test_databricks_sql.py::test_incorrect_column_names +- tests/providers/databricks/hooks/test_databricks_sql.py::test_no_query +- tests/providers/databricks/hooks/test_databricks_sql.py::test_query +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksRunNowDeferrableOperator::test_databricks_run_now_deferrable_operator_failed_before_defer +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksRunNowDeferrableOperator::test_databricks_run_now_deferrable_operator_success_before_defer +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksRunNowDeferrableOperator::test_execute_complete_failure +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksRunNowDeferrableOperator::test_execute_complete_incorrect_event_validation_failure +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksRunNowDeferrableOperator::test_execute_complete_success +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksRunNowDeferrableOperator::test_execute_task_deferred +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksRunNowDeferrableOperator::test_operator_failed_before_defer +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksSubmitRunDeferrableOperator::test_databricks_submit_run_deferrable_operator_failed_before_defer +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksSubmitRunDeferrableOperator::test_databricks_submit_run_deferrable_operator_success_before_defer +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksSubmitRunDeferrableOperator::test_execute_complete_failure +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksSubmitRunDeferrableOperator::test_execute_complete_incorrect_event_validation_failure +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksSubmitRunDeferrableOperator::test_execute_complete_success +- tests/providers/databricks/operators/test_databricks.py::TestDatabricksSubmitRunDeferrableOperator::test_execute_task_deferred +- tests/providers/databricks/sensors/test_databricks_partition.py::TestDatabricksPartitionSensor::test_unsupported_conn_type +- tests/providers/databricks/sensors/test_databricks_sql.py::TestDatabricksSqlSensor::test_unsupported_conn_type +- tests/providers/docker/operators/test_docker.py::test_hook_usage +- tests/providers/elasticsearch/log/test_es_task_handler.py::test_retrieve_retry_on_timeout +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_batch_predict +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_create_dataset +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_create_model +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_delete_dataset +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_delete_model +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_deploy_model +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_extract_object_id +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_get_conn +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_get_model +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_import_data +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_init +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_list_column_specs +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_list_datasets +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_list_table_specs +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_predict +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_prediction_client +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_update_dataset +- tests/providers/google/cloud/hooks/test_automl.py::TestAutoMLHook::test_wait_for_operation +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_api_resource_configs +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_api_resource_configs_duplication_warning +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_cancel_queries +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_cancel_query_cancel_completed +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_cancel_query_cancel_timeout +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_cancel_query_jobs_to_cancel +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_get_dataset_tables_list +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_invalid_schema_update_and_write_disposition +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_invalid_schema_update_options +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_invalid_source_format +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_extract +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_load_with_non_csv_as_src_fmt +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_query_schema_update_options +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_query_schema_update_options_incorrect +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_query_sql_dialect +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_query_sql_dialect_default +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_query_sql_dialect_legacy_with_query_params +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_query_sql_dialect_legacy_with_query_params_fails +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_query_with_arg +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_query_without_sql_fails +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookMethods::test_run_table_delete +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryHookRunWithConfiguration::test_run_with_configuration_location +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryWithKMS::test_create_external_table_with_kms +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryWithKMS::test_run_copy_with_kms +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryWithKMS::test_run_load_with_kms +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryWithKMS::test_run_query_with_kms +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryWithLabelsAndDescription::test_create_external_table_description +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryWithLabelsAndDescription::test_create_external_table_labels +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryWithLabelsAndDescription::test_run_load_description +- tests/providers/google/cloud/hooks/test_bigquery.py::TestBigQueryWithLabelsAndDescription::test_run_load_labels +- tests/providers/google/cloud/hooks/test_bigquery.py::TestClusteringInRunJob::test_run_load_default +- tests/providers/google/cloud/hooks/test_bigquery.py::TestClusteringInRunJob::test_run_load_with_arg +- tests/providers/google/cloud/hooks/test_bigquery.py::TestClusteringInRunJob::test_run_query_default +- tests/providers/google/cloud/hooks/test_bigquery.py::TestClusteringInRunJob::test_run_query_with_arg +- tests/providers/google/cloud/hooks/test_bigquery.py::TestDatasetsOperations::test_patch_dataset +- tests/providers/google/cloud/hooks/test_bigquery.py::TestTableOperations::test_patch_table +- tests/providers/google/cloud/hooks/test_bigquery.py::TestTimePartitioningInRunJob::test_run_load_default +- tests/providers/google/cloud/hooks/test_bigquery.py::TestTimePartitioningInRunJob::test_run_load_with_arg +- tests/providers/google/cloud/hooks/test_bigquery.py::TestTimePartitioningInRunJob::test_run_query_with_arg +- tests/providers/google/cloud/hooks/test_bigquery.py::TestTimePartitioningInRunJob::test_run_with_auto_detect +- tests/providers/google/cloud/hooks/test_cloud_sql.py::TestCloudSqlDatabaseHook::test_cloudsql_database_hook_get_database_hook +- tests/providers/google/cloud/hooks/test_gcs.py::TestGCSHook::test_list__error_match_glob_and_invalid_delimiter +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKECustomResourceHook::test_get_connection_update_hook_with_invalid_token +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKECustomResourceHook::test_get_connection_update_hook_with_valid_token +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEDeploymentHook::test_check_kueue_deployment_raise_exception +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEDeploymentHook::test_check_kueue_deployment_running +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEDeploymentHook::test_get_connection_update_hook_with_invalid_token +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEDeploymentHook::test_get_connection_update_hook_with_valid_token +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEHook::test_get_client +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEHookClient::test_gke_cluster_client_creation +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEJobHook::test_get_connection_update_hook_with_invalid_token +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEJobHook::test_get_connection_update_hook_with_valid_token +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEPodAsyncHook::test_delete_pod +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEPodAsyncHook::test_get_pod +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEPodAsyncHook::test_read_logs +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEPodHook::test_disable_tcp_keepalive +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEPodHook::test_get_connection_update_hook_with_invalid_token +- tests/providers/google/cloud/hooks/test_kubernetes_engine.py::TestGKEPodHook::test_get_connection_update_hook_with_valid_token +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithDefaultProjectIdFromConnection::test_error_operation +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithDefaultProjectIdFromConnection::test_life_science_client_creation +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithDefaultProjectIdFromConnection::test_run_pipeline_immediately_complete +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithDefaultProjectIdFromConnection::test_waiting_operation +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithPassedProjectId::test_delegate_to_runtime_error +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithPassedProjectId::test_error_operation +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithPassedProjectId::test_life_science_client_creation +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithPassedProjectId::test_location_path +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithPassedProjectId::test_run_pipeline_immediately_complete +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithPassedProjectId::test_waiting_operation +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithoutProjectId::test_life_science_client_creation +- tests/providers/google/cloud/hooks/test_life_sciences.py::TestLifeSciencesHookWithoutProjectId::test_run_pipeline +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithDefaultProjectIdHook::test_cancel_pipeline_job +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithDefaultProjectIdHook::test_create_pipeline_job +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithDefaultProjectIdHook::test_delete_pipeline_job +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithDefaultProjectIdHook::test_get_pipeline_job +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithDefaultProjectIdHook::test_list_pipeline_jobs +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithoutDefaultProjectIdHook::test_cancel_pipeline_job +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithoutDefaultProjectIdHook::test_create_pipeline_job +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithoutDefaultProjectIdHook::test_delete_pipeline_job +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithoutDefaultProjectIdHook::test_get_pipeline_job +- tests/providers/google/cloud/hooks/vertex_ai/test_custom_job.py::TestCustomJobWithoutDefaultProjectIdHook::test_list_pipeline_jobs +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryCreateExternalTableOperator::test_execute_with_csv_format +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryCreateExternalTableOperator::test_execute_with_parquet_format +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryOperator::test_bigquery_operator_defaults +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryOperator::test_bigquery_operator_extra_link_when_missing_job_id +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryOperator::test_bigquery_operator_extra_link_when_multiple_query +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryOperator::test_bigquery_operator_extra_link_when_single_query +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryOperator::test_bigquery_operator_extra_serialized_field_when_multiple_queries +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryOperator::test_bigquery_operator_extra_serialized_field_when_single_query +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryOperator::test_execute +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryOperator::test_execute_bad_type +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryOperator::test_execute_list +- tests/providers/google/cloud/operators/test_bigquery.py::TestBigQueryPatchDatasetOperator::test_execute +- tests/providers/google/cloud/operators/test_dataflow.py::TestDataflowCreateJavaJobOperator::test_check_job_not_running_exec +- tests/providers/google/cloud/operators/test_dataflow.py::TestDataflowCreateJavaJobOperator::test_check_job_running_exec +- tests/providers/google/cloud/operators/test_dataflow.py::TestDataflowCreateJavaJobOperator::test_check_multiple_job_exec +- tests/providers/google/cloud/operators/test_dataflow.py::TestDataflowCreateJavaJobOperator::test_exec +- tests/providers/google/cloud/operators/test_dataflow.py::TestDataflowCreateJavaJobOperator::test_init +- tests/providers/google/cloud/operators/test_dataflow.py::TestDataflowCreateJavaJobOperatorWithLocal::test_check_job_not_running_exec +- tests/providers/google/cloud/operators/test_dataflow.py::TestDataflowCreateJavaJobOperatorWithLocal::test_init +- tests/providers/google/cloud/operators/test_dataflow.py::TestDataflowCreatePythonJobOperator::test_exec +- tests/providers/google/cloud/operators/test_dataflow.py::TestDataflowCreatePythonJobOperator::test_init +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcHadoopOperator::test_execute +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcHiveOperator::test_builder +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcHiveOperator::test_execute +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcPigOperator::test_builder +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcPigOperator::test_execute +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcPySparkOperator::test_execute +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcSparkOperator::test_execute +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcSparkSqlOperator::test_builder +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcSparkSqlOperator::test_execute +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataProcSparkSqlOperator::test_execute_override_project_id +- tests/providers/google/cloud/operators/test_dataproc.py::TestDataprocClusterScaleOperator::test_execute +- tests/providers/google/cloud/operators/test_dataproc.py::test_create_cluster_operator_extra_links +- tests/providers/google/cloud/operators/test_dataproc.py::test_scale_cluster_operator_extra_links +- tests/providers/google/cloud/operators/test_dataproc.py::test_submit_spark_job_operator_extra_links +- tests/providers/google/cloud/operators/test_gcs.py::TestGoogleCloudStorageListOperator::test_execute__delimiter +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEDeleteJobOperator::test_default_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEDeleteJobOperator::test_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEDescribeJobOperator::test_default_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEDescribeJobOperator::test_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperator::test_cluster_info +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperator::test_config_file_throws_error +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperator::test_default_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperator::test_execute +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperator::test_execute_with_impersonation_service_account +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperator::test_execute_with_impersonation_service_chain_one_element +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperator::test_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperator::test_on_finish_action_handler +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperator::test_template_fields +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEPodOperatorAsync::test_async_create_pod_should_execute_successfully +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEStartJobOperator::test_default_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEStartJobOperator::test_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEStartKueueInsideClusterOperator::test_execute +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEStartKueueJobOperator::test_default_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGKEStartKueueJobOperator::test_gcp_conn_id +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGoogleCloudPlatformContainerOperator::test_create_execute +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGoogleCloudPlatformContainerOperator::test_create_execute_call_defer_method +- tests/providers/google/cloud/operators/test_kubernetes_engine.py::TestGoogleCloudPlatformContainerOperator::test_create_execute_error_body +- tests/providers/google/cloud/operators/test_life_sciences.py::TestLifeSciencesRunPipelineOperator::test_executes +- tests/providers/google/cloud/operators/test_life_sciences.py::TestLifeSciencesRunPipelineOperator::test_executes_without_project_id +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineCreateModelOperator::test_success_create_model +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineCreateModelOperator::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineCreateVersion::test_missing_model_name +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineCreateVersion::test_missing_version +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineCreateVersion::test_success +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineCreateVersion::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineDeleteModelOperator::test_success_delete_model +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineDeleteModelOperator::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineDeleteVersion::test_missing_model_name +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineDeleteVersion::test_missing_version_name +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineDeleteVersion::test_success +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineDeleteVersion::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineGetModelOperator::test_success_get_model +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineGetModelOperator::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineListVersions::test_missing_model_name +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineListVersions::test_success +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineListVersions::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineModelOperator::test_fail +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineModelOperator::test_success_create_model +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineModelOperator::test_success_get_model +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineModelOperator::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineSetDefaultVersion::test_missing_model_name +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineSetDefaultVersion::test_missing_version_name +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineSetDefaultVersion::test_success +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineSetDefaultVersion::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartBatchPredictionJobOperator::test_failed_job_error +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartBatchPredictionJobOperator::test_http_error +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartBatchPredictionJobOperator::test_invalid_model_origin +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartBatchPredictionJobOperator::test_success_with_model +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartBatchPredictionJobOperator::test_success_with_uri +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartBatchPredictionJobOperator::test_success_with_version +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartBatchPredictionJobOperator::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartTrainingJobOperator::test_create_training_job_should_execute_successfully +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartTrainingJobOperator::test_create_training_job_should_throw_exception_when_http_error_403 +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartTrainingJobOperator::test_create_training_job_should_throw_exception_when_job_failed +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartTrainingJobOperator::test_create_training_job_when_http_error_409_should_execute_successfully +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartTrainingJobOperator::test_create_training_job_with_master_config_should_execute_successfully +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartTrainingJobOperator::test_create_training_job_with_master_image_should_execute_successfully +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartTrainingJobOperator::test_create_training_job_with_optional_args_should_execute_successfully +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineStartTrainingJobOperator::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineTrainingCancelJobOperator::test_http_error +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineTrainingCancelJobOperator::test_success_cancel_training_job +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineTrainingCancelJobOperator::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineVersionOperator::test_success_create_version +- tests/providers/google/cloud/operators/test_mlengine.py::TestMLEngineVersionOperator::test_templating +- tests/providers/google/cloud/operators/test_mlengine.py::test_async_create_training_job_logging_should_execute_successfully +- tests/providers/google/cloud/operators/test_mlengine.py::test_async_create_training_job_should_execute_successfully +- tests/providers/google/cloud/operators/test_mlengine.py::test_async_create_training_job_should_throw_exception +- tests/providers/google/cloud/operators/test_mlengine.py::test_async_create_training_job_should_throw_exception_if_custom_none +- tests/providers/google/cloud/operators/test_mlengine.py::test_async_create_training_job_should_throw_exception_if_job_id_none +- tests/providers/google/cloud/operators/test_mlengine.py::test_async_create_training_job_should_throw_exception_if_package_none +- tests/providers/google/cloud/operators/test_mlengine.py::test_async_create_training_job_should_throw_exception_if_project_id_none +- tests/providers/google/cloud/operators/test_mlengine.py::test_async_create_training_job_should_throw_exception_if_uris_none +- tests/providers/google/cloud/operators/test_mlengine.py::test_async_create_training_job_with_conflict_should_execute_successfully +- tests/providers/google/cloud/operators/test_vertex_ai.py::TestVertexAICreateBatchPredictionJobOperator::test_execute +- tests/providers/google/cloud/operators/test_vertex_ai.py::TestVertexAICreateBatchPredictionJobOperator::test_execute_deferrable +- tests/providers/google/cloud/operators/test_vertex_ai.py::TestVertexAICreateHyperparameterTuningJobOperator::test_deferrable +- tests/providers/google/cloud/operators/test_vertex_ai.py::TestVertexAICreateHyperparameterTuningJobOperator::test_deferrable_sync_error +- tests/providers/google/cloud/operators/test_vertex_ai.py::TestVertexAICreateHyperparameterTuningJobOperator::test_execute +- tests/providers/google/cloud/operators/test_vertex_ai.py::TestVertexAIDeleteAutoMLTrainingJobOperator::test_execute +- tests/providers/google/cloud/operators/test_vertex_ai.py::TestVertexAIDeleteCustomTrainingJobOperator::test_execute +- tests/providers/google/cloud/secrets/test_secret_manager.py::TestCloudSecretManagerBackend::test_connections_prefix_none_value +- tests/providers/google/cloud/secrets/test_secret_manager.py::TestCloudSecretManagerBackend::test_get_conn_uri +- tests/providers/google/cloud/secrets/test_secret_manager.py::TestCloudSecretManagerBackend::test_get_conn_uri_non_existent_key +- tests/providers/google/cloud/sensors/test_cloud_composer.py::TestCloudComposerEnvironmentSensor::test_cloud_composer_existence_sensor_async +- tests/providers/google/cloud/sensors/test_cloud_composer.py::TestCloudComposerEnvironmentSensor::test_cloud_composer_existence_sensor_async_execute_complete +- tests/providers/google/cloud/sensors/test_cloud_composer.py::TestCloudComposerEnvironmentSensor::test_cloud_composer_existence_sensor_async_execute_failure +- tests/providers/google/cloud/sensors/test_gcs.py::TestTsFunction::test_should_support_cron +- tests/providers/google/cloud/sensors/test_gcs.py::TestTsFunction::test_should_support_datetime +- tests/providers/google/cloud/transfers/test_azure_fileshare_to_gcs.py::TestAzureFileShareToGCSOperator::test_execute +- tests/providers/google/cloud/transfers/test_azure_fileshare_to_gcs.py::TestAzureFileShareToGCSOperator::test_execute_with_gzip +- tests/providers/google/cloud/transfers/test_azure_fileshare_to_gcs.py::TestAzureFileShareToGCSOperator::test_init +- tests/providers/google/cloud/transfers/test_bigquery_to_postgres.py::TestBigQueryToPostgresOperator::test_execute_good_request_to_bq +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_copy_files_into_a_folder +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_last_modified_time +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_more_than_1_wildcard +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_no_prefix +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_no_suffix +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_prefix_and_suffix +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_wildcard_empty_destination_object +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_wildcard_reports_openlineage +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_wildcard_with_destination_object +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_wildcard_with_destination_object_retained_prefix +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_wildcard_with_replace_flag_false +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_wildcard_with_replace_flag_false_with_destination_object +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_execute_wildcard_without_destination_object +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_executes_with_a_delimiter +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_executes_with_delimiter_and_destination_object +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_executes_with_different_delimiter_and_destination_object +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_wc_with_last_modified_time_with_all_true_cond +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_wc_with_last_modified_time_with_one_true_cond +- tests/providers/google/cloud/transfers/test_gcs_to_gcs.py::TestGoogleCloudStorageToCloudStorageOperator::test_wc_with_no_last_modified_time +- tests/providers/google/cloud/triggers/test_kubernetes_engine.py::TestGKEStartPodTrigger::test_define_container_state_should_execute_successfully +- tests/providers/google/cloud/triggers/test_kubernetes_engine.py::TestGKEStartPodTrigger::test_logging_in_trigger_when_exception_should_execute_successfully +- tests/providers/google/cloud/triggers/test_kubernetes_engine.py::TestGKEStartPodTrigger::test_logging_in_trigger_when_fail_should_execute_successfully +- tests/providers/google/cloud/triggers/test_kubernetes_engine.py::TestGKEStartPodTrigger::test_run_loop_return_failed_event_should_execute_successfully +- tests/providers/google/cloud/triggers/test_kubernetes_engine.py::TestGKEStartPodTrigger::test_run_loop_return_running_event_should_execute_successfully +- tests/providers/google/cloud/triggers/test_kubernetes_engine.py::TestGKEStartPodTrigger::test_run_loop_return_success_event_should_execute_successfully +- tests/providers/google/cloud/triggers/test_kubernetes_engine.py::TestGKEStartPodTrigger::test_run_loop_return_waiting_event_should_execute_successfully +- tests/providers/google/cloud/triggers/test_kubernetes_engine.py::TestGKEStartPodTrigger::test_serialize_should_execute_successfully +- tests/providers/google/cloud/utils/test_mlengine_operator_utils.py::TestMlengineOperatorUtils::test_apply_validate_fn +- tests/providers/google/cloud/utils/test_mlengine_operator_utils.py::TestMlengineOperatorUtils::test_create_evaluate_ops +- tests/providers/google/cloud/utils/test_mlengine_operator_utils.py::TestMlengineOperatorUtils::test_create_evaluate_ops_dag +- tests/providers/google/cloud/utils/test_mlengine_operator_utils.py::TestMlengineOperatorUtils::test_create_evaluate_ops_model_and_version_name +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_delete_upload_data +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_gen_conn +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_get_ad_words_links_call +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_init +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_list_accounts +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_list_accounts_for_multiple_pages +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_list_ad_words_links +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_list_ad_words_links_for_multiple_pages +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_list_upload +- tests/providers/google/marketing_platform/hooks/test_analytics.py::TestGoogleAnalyticsHook::test_upload_data +- tests/providers/google/marketing_platform/operators/test_analytics.py::TestGoogleAnalyticsDataImportUploadOperator::test_execute +- tests/providers/google/marketing_platform/operators/test_analytics.py::TestGoogleAnalyticsDeletePreviousDataUploadsOperator::test_execute +- tests/providers/google/marketing_platform/operators/test_analytics.py::TestGoogleAnalyticsGetAdsLinkOperator::test_execute +- tests/providers/google/marketing_platform/operators/test_analytics.py::TestGoogleAnalyticsListAccountsOperator::test_execute +- tests/providers/google/marketing_platform/operators/test_analytics.py::TestGoogleAnalyticsRetrieveAdsLinksListOperator::test_execute +- tests/providers/hashicorp/secrets/test_vault.py::TestVaultSecrets::test_connections_path_none_value +- tests/providers/hashicorp/secrets/test_vault.py::TestVaultSecrets::test_get_conn_uri +- tests/providers/hashicorp/secrets/test_vault.py::TestVaultSecrets::test_get_conn_uri_engine_version_1 +- tests/providers/hashicorp/secrets/test_vault.py::TestVaultSecrets::test_get_conn_uri_engine_version_1_custom_auth_mount_point +- tests/providers/hashicorp/secrets/test_vault.py::TestVaultSecrets::test_get_conn_uri_non_existent_key +- tests/providers/hashicorp/secrets/test_vault.py::TestVaultSecrets::test_get_conn_uri_without_predefined_mount_point +- tests/providers/jdbc/operators/test_jdbc.py::TestJdbcOperator::test_execute_do_push +- tests/providers/jdbc/operators/test_jdbc.py::TestJdbcOperator::test_execute_dont_push +- tests/providers/microsoft/azure/hooks/test_adx.py::TestAzureDataExplorerHook::test_backcompat_prefix_works +- tests/providers/microsoft/mssql/operators/test_mssql.py::TestMsSqlOperator::test_get_hook_default +- tests/providers/microsoft/mssql/operators/test_mssql.py::TestMsSqlOperator::test_get_hook_from_conn +- tests/providers/microsoft/psrp/hooks/test_psrp.py::TestPsrpHook::test_invoke_cmdlet_deprecated_kwargs +- tests/providers/mysql/operators/test_mysql.py::TestMySql::test_mysql_operator_openlineage +- tests/providers/mysql/operators/test_mysql.py::TestMySql::test_mysql_operator_resolve_parameters_template_json_file +- tests/providers/mysql/operators/test_mysql.py::TestMySql::test_mysql_operator_test +- tests/providers/mysql/operators/test_mysql.py::TestMySql::test_mysql_operator_test_multi +- tests/providers/mysql/operators/test_mysql.py::TestMySql::test_overwrite_schema +- tests/providers/mysql/operators/test_mysql.py::test_execute_openlineage_events +- tests/providers/openlineage/plugins/test_listener.py::test_listener_does_not_change_task_instance +- tests/providers/openlineage/plugins/test_utils.py::test_get_dagrun_start_end +- tests/providers/openlineage/utils/test_utils.py::test_get_custom_facets +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_get_conn_events +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_get_conn_host +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_get_conn_host_alternative_port +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_get_conn_mode +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_get_conn_purity +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_oracledb_defaults_attributes_default_values +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_set_oracledb_defaults_attributes_extra +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_set_oracledb_defaults_attributes_extra_str +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_set_oracledb_defaults_attributes_params +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_set_thick_mode_extra +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_set_thick_mode_extra_str +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_set_thick_mode_params +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_thick_mode_defaults_to_false +- tests/providers/oracle/hooks/test_oracle.py::TestOracleHookConn::test_thick_mode_dirs_defaults +- tests/providers/pagerduty/hooks/test_pagerduty.py::TestPagerdutyHook::test_create_event +- tests/providers/pagerduty/hooks/test_pagerduty.py::TestPagerdutyHook::test_create_event_override +- tests/providers/pagerduty/hooks/test_pagerduty_events.py::TestPagerdutyEventsHook::test_create_event +- tests/providers/postgres/hooks/test_postgres.py::TestPostgresHookConn::test_schema_kwarg_database_kwarg_compatibility +- tests/providers/postgres/operators/test_postgres.py::test_parameters_are_templatized +- tests/providers/postgres/operators/test_postgres.py::TestPostgres::test_overwrite_database +- tests/providers/postgres/operators/test_postgres.py::TestPostgres::test_postgres_operator_test +- tests/providers/postgres/operators/test_postgres.py::TestPostgres::test_postgres_operator_test_multi +- tests/providers/postgres/operators/test_postgres.py::TestPostgres::test_runtime_parameter_setting +- tests/providers/postgres/operators/test_postgres.py::TestPostgres::test_vacuum +- tests/providers/postgres/operators/test_postgres.py::TestPostgresOpenLineage::test_postgres_operator_openlineage_explicit_schema +- tests/providers/postgres/operators/test_postgres.py::TestPostgresOpenLineage::test_postgres_operator_openlineage_implicit_schema +- tests/providers/sftp/operators/test_sftp.py::TestSFTPOperator::test_arg_checking +- tests/providers/sftp/operators/test_sftp.py::TestSFTPOperator::test_file_transfer_no_intermediate_dir_error_get +- tests/providers/sftp/operators/test_sftp.py::TestSFTPOperator::test_file_transfer_no_intermediate_dir_error_put +- tests/providers/sftp/operators/test_sftp.py::TestSFTPOperator::test_file_transfer_with_intermediate_dir_error_get +- tests/providers/sftp/operators/test_sftp.py::TestSFTPOperator::test_file_transfer_with_intermediate_dir_put +- tests/providers/sftp/operators/test_sftp.py::TestSFTPOperator::test_json_file_transfer_get +- tests/providers/sftp/operators/test_sftp.py::TestSFTPOperator::test_json_file_transfer_put +- tests/providers/sftp/operators/test_sftp.py::TestSFTPOperator::test_pickle_file_transfer_get +- tests/providers/sftp/operators/test_sftp.py::TestSFTPOperator::test_pickle_file_transfer_put +- tests/providers/slack/operators/test_slack.py::TestSlackAPIFileOperator::test_both_channel_and_channels_set +- tests/providers/snowflake/operators/test_snowflake.py::TestSnowflakeOperator::test_snowflake_operator +- tests/providers/snowflake/operators/test_snowflake.py::TestSnowflakeOperatorForParams::test_overwrite_params +- tests/providers/snowflake/operators/test_snowflake_sql.py::test_exec_success +- tests/providers/snowflake/operators/test_snowflake_sql.py::test_execute_openlineage_events +- tests/providers/sqlite/operators/test_sqlite.py::TestSqliteOperator::test_sqlite_operator_with_invalid_sql +- tests/providers/sqlite/operators/test_sqlite.py::TestSqliteOperator::test_sqlite_operator_with_multiple_statements +- tests/providers/sqlite/operators/test_sqlite.py::TestSqliteOperator::test_sqlite_operator_with_one_statement +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_old_cm +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_with_all_timeout_param_and_extra_combinations +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_with_conn_timeout_and_timeout +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_with_conn_timeout_extra +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_with_password +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_with_private_key_extra +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_with_private_key_passphrase_extra +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_with_timeout_extra +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_with_timeout_extra_and_conn_timeout_extra +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_ssh_connection_without_password +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_tunnel_with_password +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_tunnel_with_private_key +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_tunnel_with_private_key_ecdsa +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_tunnel_with_private_key_passphrase +- tests/providers/ssh/hooks/test_ssh.py::TestSSHHook::test_tunnel_without_password +- tests/providers/tableau/hooks/test_tableau.py::TestTableauHook::test_get_conn_auth_via_token_and_site_in_init +- tests/providers/tableau/hooks/test_tableau.py::TestTableauHook::test_get_conn_ssl_default +- tests/providers/trino/operators/test_trino.py::test_execute_openlineage_events +- tests/providers/vertica/operators/test_vertica.py::TestVerticaOperator::test_execute +- tests/providers/weaviate/operators/test_weaviate.py::TestWeaviateIngestOperator::test_constructor +- tests/providers/weaviate/operators/test_weaviate.py::TestWeaviateIngestOperator::test_execute_with_input_json +- tests/providers/yandex/hooks/test_yandex.py::TestYandexHook::test_provider_user_agent +- tests/providers/yandex/hooks/test_yandex.py::TestYandexHook::test_backcompat_prefix_works +- tests/providers/yandex/operators/test_yandexcloud_dataproc.py::TestDataprocClusterCreateOperator::test_create_hive_job_operator +- tests/providers/yandex/operators/test_yandexcloud_dataproc.py::TestDataprocClusterCreateOperator::test_create_mapreduce_job_operator +- tests/providers/yandex/operators/test_yandexcloud_dataproc.py::TestDataprocClusterCreateOperator::test_create_spark_job_operator +- tests/providers/yandex/operators/test_yandexcloud_dataproc.py::TestDataprocClusterCreateOperator::test_create_pyspark_job_operator +- tests/providers/yandex/secrets/test_lockbox.py::TestLockboxSecretBackend::test_yandex_lockbox_secret_backend_get_connection_from_json