Skip to content

Check GCSToGCSOperator deprecation warnings after template rendering - #70621

Open
bramhanandlingala wants to merge 1 commit into
apache:mainfrom
bramhanandlingala:fix/70296-7
Open

Check GCSToGCSOperator deprecation warnings after template rendering#70621
bramhanandlingala wants to merge 1 commit into
apache:mainfrom
bramhanandlingala:fix/70296-7

Conversation

@bramhanandlingala

Copy link
Copy Markdown
Contributor

Fixes the google provider's GCSToGCSOperator entry from the #70296 exemption-list burn-down.

source_object, source_objects, and delimiter are template fields, but __init__ inspected their content (checking for a wildcard character, or truthiness of delimiter) to decide whether to emit a deprecation warning — so these checks ran on the un-rendered Jinja expression instead of the actual rendered value.

Moved all three deprecation-warning checks from __init__ into execute(), right before the fields are used. __init__ now only does plain assignments.

  • Removed the three warnings.warn(...) blocks from __init__.
  • Added the same three checks at the top of execute(), now reading self.source_object / self.source_objects / self.delimiter (rendered values) instead of the constructor arguments.
  • Updated the two existing tests that asserted on these warnings (test_get_openlineage_facets_on_complete, test_execute_returns_list_of_destination_uris_multiple_files) to expect the warning on .execute() instead of construction.
  • Added pytestmark = pytest.mark.filterwarnings("ignore::airflow.exceptions.AirflowProviderDeprecationWarning") at module level in the test file, since this repo's forbidden_warnings pytest config turns this warning into a hard error by default, and ~15 other existing tests exercise wildcard/delimiter inputs incidentally without testing the deprecation itself. This mirrors the existing pattern used in test_bigquery.py and test_kubernetes_engine.py for the same warning class.
  • Removed the operator's entry from validate_operators_init_exemptions.txt.

Verified locally that scripts/ci/prek/validate_operators_init.py reports zero findings for this class after the change, and that the full existing test suite in test_gcs_to_gcs.py passes.

Related to #70296


Gen-AI disclosure: I used a generative AI tool to help identify the root
cause, write tests, and draft the PR description. I reviewed, tested, and
verified all changes locally before submitting.

Was generative AI tooling used to co-author this PR?
  • Yes - Claude

Generated-by: Claude following the guidelines

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dev-tools area:providers backport-to-v3-3-test Backport to v3-3-test provider:google Google (including GCP) related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant