This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 6b809a30e1d Update system tests in google provider. Add constraints to
prevent from failing and modify example_cloud_logging_sink (#55939)
6b809a30e1d is described below
commit 6b809a30e1df42eb8b34e6d47b16ba57bc60e7d4
Author: Nitochkin <[email protected]>
AuthorDate: Wed Oct 1 02:14:16 2025 +0200
Update system tests in google provider. Add constraints to prevent from
failing and modify example_cloud_logging_sink (#55939)
Co-authored-by: Anton Nitochkin <[email protected]>
---
.../google/tests/system/google/ads/example_ads.py | 2 +-
.../example_cloud_logging_sink.py | 21 ++++++++++++++++++---
.../vertex_ai/example_vertex_ai_feature_store.py | 8 +++++++-
.../marketing_platform/example_display_video.py | 2 +-
4 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/providers/google/tests/system/google/ads/example_ads.py
b/providers/google/tests/system/google/ads/example_ads.py
index 096adfa150d..b3a98ba8040 100644
--- a/providers/google/tests/system/google/ads/example_ads.py
+++ b/providers/google/tests/system/google/ads/example_ads.py
@@ -61,7 +61,7 @@ from tests_common.test_utils.api_client_helpers import
create_airflow_connection
# [START howto_google_ads_env_variables]
ENV_ID = os.environ.get("SYSTEM_TESTS_ENV_ID", "default")
-PROJECT_ID = os.environ.get("SYSTEM_TESTS_PROJECT_ID", "default")
+PROJECT_ID = os.environ.get("SYSTEM_TESTS_GCP_PROJECT", "default")
API_VERSION = "v21"
DAG_ID = "google_ads"
diff --git
a/providers/google/tests/system/google/cloud/cloud_logging_sink/example_cloud_logging_sink.py
b/providers/google/tests/system/google/cloud/cloud_logging_sink/example_cloud_logging_sink.py
index 1b8edd112f0..958bcc8a630 100644
---
a/providers/google/tests/system/google/cloud/cloud_logging_sink/example_cloud_logging_sink.py
+++
b/providers/google/tests/system/google/cloud/cloud_logging_sink/example_cloud_logging_sink.py
@@ -32,27 +32,38 @@ from
airflow.providers.google.cloud.operators.cloud_logging_sink import (
CloudLoggingListSinksOperator,
CloudLoggingUpdateSinkOperator,
)
+from airflow.providers.google.cloud.operators.gcs import
GCSCreateBucketOperator, GCSDeleteBucketOperator
+
+try:
+ from airflow.sdk import TriggerRule
+except ImportError:
+ # Compatibility for Airflow < 3.1
+ from airflow.utils.trigger_rule import TriggerRule # type:
ignore[no-redef,attr-defined]
PROJECT_ID = os.environ.get("SYSTEM_TESTS_GCP_PROJECT", "default")
ENV_ID = os.environ.get("SYSTEM_TESTS_ENV_ID", "default")
+DAG_ID = "gcp_cloud_logging_sink"
+BUCKET_NAME = f"bucket_{DAG_ID}_{ENV_ID}"
SINK_NAME = "example-airflow-test-sink"
CONN_ID = "google_cloud_default"
with DAG(
- dag_id="google_cloud_logging_sink",
+ dag_id=DAG_ID,
schedule="@once",
start_date=datetime(2024, 1, 1),
catchup=False,
tags=["example", "gcp", "cloud-logging"],
) as dag:
+ create_bucket = GCSCreateBucketOperator(task_id="create_bucket",
bucket_name=BUCKET_NAME)
+
# [START howto_operator_cloud_logging_create_sink_native_obj]
create_sink = CloudLoggingCreateSinkOperator(
task_id="create_sink",
project_id=PROJECT_ID,
sink_config={
"name": SINK_NAME,
- "destination": "storage.googleapis.com/test-log-sink-af",
+ "destination": f"storage.googleapis.com/{BUCKET_NAME}",
"description": "Create with full sink_config",
"filter": "severity>=INFO",
"disabled": False,
@@ -110,7 +121,11 @@ with DAG(
)
# [END howto_operator_cloud_logging_delete_sink]
- (create_sink >> update_sink_config >> list_sinks_after >> delete_sink)
+ delete_bucket = GCSDeleteBucketOperator(
+ task_id="delete_bucket", bucket_name=BUCKET_NAME,
trigger_rule=TriggerRule.ALL_DONE
+ )
+
+ (create_bucket >> create_sink >> update_sink_config >> list_sinks_after >>
delete_sink >> delete_bucket)
from tests_common.test_utils.watcher import watcher
diff --git
a/providers/google/tests/system/google/cloud/vertex_ai/example_vertex_ai_feature_store.py
b/providers/google/tests/system/google/cloud/vertex_ai/example_vertex_ai_feature_store.py
index 3349d2df168..1a88cddb6fd 100644
---
a/providers/google/tests/system/google/cloud/vertex_ai/example_vertex_ai_feature_store.py
+++
b/providers/google/tests/system/google/cloud/vertex_ai/example_vertex_ai_feature_store.py
@@ -23,6 +23,8 @@ Example Airflow DAG for Google Vertex AI Feature Store
operations.
from __future__ import annotations
import os
+import random
+import string
from datetime import datetime, timedelta
from google.cloud.aiplatform_v1beta1 import FeatureOnlineStore, FeatureView,
FeatureViewDataKey
@@ -61,7 +63,11 @@ BQ_DATASET_ID = "bq_ds_featurestore_demo"
BQ_VIEW_ID = "product_features_view"
BQ_VIEW_FQN = f"{PROJECT_ID}.{BQ_DATASET_ID}.{BQ_VIEW_ID}"
-FEATURE_ONLINE_STORE_ID = f"my_feature_online_store_unique_{ENV_ID}"
+# Please take into consideration that max ID length is 60 symbols
+PREFIX_FEATURE_ONLINE_STORE_ID = "".join(
+ random.choice(string.ascii_letters + string.digits) for _ in range(20)
+)
+FEATURE_ONLINE_STORE_ID =
f"feature_online_store_{PREFIX_FEATURE_ONLINE_STORE_ID}".replace("-", "_")
FEATURE_VIEW_ID = "feature_view_product"
FEATURE_VIEW_DATA_KEY = {"key": "28098"}
diff --git
a/providers/google/tests/system/google/marketing_platform/example_display_video.py
b/providers/google/tests/system/google/marketing_platform/example_display_video.py
index ca79d6f66a0..a78d9e85fda 100644
---
a/providers/google/tests/system/google/marketing_platform/example_display_video.py
+++
b/providers/google/tests/system/google/marketing_platform/example_display_video.py
@@ -83,7 +83,7 @@ DISPLAY_VIDEO_SERVICE_ACCOUNT_KEY =
"google_display_video_service_account_key"
ADVERTISER_ID = "{{ task_instance.xcom_pull('get_display_video_advertiser_id')
}}"
GMP_PARTNER_ID = "{{
task_instance.xcom_pull('get_display_video_gmp_partner_id') }}"
SDF_VERSION = "SDF_VERSION_8_1"
-BQ_DATASET = f"bq_dataset_{DAG_ID}_{ENV_ID}"
+BQ_DATASET = f"bq_dataset_{DAG_ID}_{ENV_ID}".replace("-", "_")
ENTITY_TYPE = "CAMPAIGN"
ERF_SOURCE_OBJECT = GoogleDisplayVideo360Hook.erf_uri(GMP_PARTNER_ID,
ENTITY_TYPE)