Skip to content

Commit 6c854dc

Browse files
amoghrajeshAmogh Desai
andauthored
Migrating Google AutoML example_dags to sys tests (#32368)
--------- Co-authored-by: Amogh Desai <adesai@adesai-MBP16.local>
1 parent 3a14e84 commit 6c854dc

6 files changed

+93
-31
lines changed

β€Žairflow/providers/google/cloud/example_dags/example_automl_nl_text_classification.py renamed to β€Žtests/system/providers/google/cloud/automl/example_automl_nl_text_classification.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,9 @@
3939
GCP_AUTOML_LOCATION = os.environ.get("GCP_AUTOML_LOCATION", "us-central1")
4040
GCP_AUTOML_TEXT_CLS_BUCKET = os.environ.get("GCP_AUTOML_TEXT_CLS_BUCKET", "gs://INVALID BUCKET NAME")
4141

42-
# Example values
43-
DATASET_ID = ""
44-
4542
# Example model
4643
MODEL = {
4744
"display_name": "auto_model_1",
48-
"dataset_id": DATASET_ID,
4945
"text_classification_model_metadata": {},
5046
}
5147

@@ -55,6 +51,7 @@
5551
"text_classification_dataset_metadata": {"classification_type": "MULTICLASS"},
5652
}
5753

54+
5855
IMPORT_INPUT_CONFIG = {"gcs_source": {"input_uris": [GCP_AUTOML_TEXT_CLS_BUCKET]}}
5956

6057
extract_object_id = CloudAutoMLHook.extract_object_id
@@ -65,24 +62,23 @@
6562
start_date=datetime(2021, 1, 1),
6663
catchup=False,
6764
tags=["example"],
68-
) as example_dag:
65+
) as dag:
6966
create_dataset_task = AutoMLCreateDatasetOperator(
7067
task_id="create_dataset_task", dataset=DATASET, location=GCP_AUTOML_LOCATION
7168
)
7269

7370
dataset_id = cast(str, XComArg(create_dataset_task, key="dataset_id"))
71+
MODEL["dataset_id"] = dataset_id
7472

7573
import_dataset_task = AutoMLImportDataOperator(
7674
task_id="import_dataset_task",
7775
dataset_id=dataset_id,
7876
location=GCP_AUTOML_LOCATION,
7977
input_config=IMPORT_INPUT_CONFIG,
8078
)
81-
8279
MODEL["dataset_id"] = dataset_id
8380

8481
create_model = AutoMLTrainModelOperator(task_id="create_model", model=MODEL, location=GCP_AUTOML_LOCATION)
85-
8682
model_id = cast(str, XComArg(create_model, key="model_id"))
8783

8884
delete_model_task = AutoMLDeleteModelOperator(
@@ -99,10 +95,23 @@
9995
project_id=GCP_PROJECT_ID,
10096
)
10197

98+
# TEST BODY
10299
import_dataset_task >> create_model
100+
# TEST TEARDOWN
103101
delete_model_task >> delete_datasets_task
104102

105103
# Task dependencies created via `XComArgs`:
106104
# create_dataset_task >> import_dataset_task
107105
# create_dataset_task >> create_model
108106
# create_dataset_task >> delete_datasets_task
107+
108+
from tests.system.utils.watcher import watcher
109+
110+
# This test needs watcher in order to properly mark success/failure
111+
# when "tearDown" task with trigger rule is part of the DAG
112+
list(dag.tasks) >> watcher()
113+
114+
from tests.system.utils import get_test_run # noqa: E402
115+
116+
# Needed to run the example DAG with pytest (see: tests/system/README.md#run_via_pytest)
117+
test_run = get_test_run(dag)

β€Žairflow/providers/google/cloud/example_dags/example_automl_nl_text_sentiment.py renamed to β€Žtests/system/providers/google/cloud/automl/example_automl_nl_text_sentiment.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,9 @@
3939
GCP_AUTOML_LOCATION = os.environ.get("GCP_AUTOML_LOCATION", "us-central1")
4040
GCP_AUTOML_SENTIMENT_BUCKET = os.environ.get("GCP_AUTOML_SENTIMENT_BUCKET", "gs://INVALID BUCKET NAME")
4141

42-
# Example values
43-
DATASET_ID = ""
44-
4542
# Example model
4643
MODEL = {
4744
"display_name": "auto_model_1",
48-
"dataset_id": DATASET_ID,
4945
"text_sentiment_model_metadata": {},
5046
}
5147

@@ -66,12 +62,13 @@
6662
catchup=False,
6763
user_defined_macros={"extract_object_id": extract_object_id},
6864
tags=["example"],
69-
) as example_dag:
65+
) as dag:
7066
create_dataset_task = AutoMLCreateDatasetOperator(
7167
task_id="create_dataset_task", dataset=DATASET, location=GCP_AUTOML_LOCATION
7268
)
7369

7470
dataset_id = cast(str, XComArg(create_dataset_task, key="dataset_id"))
71+
MODEL["dataset_id"] = dataset_id
7572

7673
import_dataset_task = AutoMLImportDataOperator(
7774
task_id="import_dataset_task",
@@ -100,11 +97,24 @@
10097
project_id=GCP_PROJECT_ID,
10198
)
10299

100+
# TEST BODY
103101
import_dataset_task >> create_model
102+
# TEST TEARDOWN
104103
delete_model_task >> delete_datasets_task
105104

106105
# Task dependencies created via `XComArgs`:
107106
# create_dataset_task >> import_dataset_task
108107
# create_dataset_task >> create_model
109108
# create_model >> delete_model_task
110109
# create_dataset_task >> delete_datasets_task
110+
111+
from tests.system.utils.watcher import watcher
112+
113+
# This test needs watcher in order to properly mark success/failure
114+
# when "tearDown" task with trigger rule is part of the DAG
115+
list(dag.tasks) >> watcher()
116+
117+
from tests.system.utils import get_test_run # noqa: E402
118+
119+
# Needed to run the example DAG with pytest (see: tests/system/README.md#run_via_pytest)
120+
test_run = get_test_run(dag)

β€Žairflow/providers/google/cloud/example_dags/example_automl_translation.py renamed to β€Žtests/system/providers/google/cloud/automl/example_automl_translation.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,9 @@
4141
"GCP_AUTOML_TRANSLATION_BUCKET", "gs://INVALID BUCKET NAME/file"
4242
)
4343

44-
# Example values
45-
DATASET_ID = "TRL123456789"
46-
4744
# Example model
4845
MODEL = {
4946
"display_name": "auto_model_1",
50-
"dataset_id": DATASET_ID,
5147
"translation_model_metadata": {},
5248
}
5349

@@ -60,6 +56,7 @@
6056
},
6157
}
6258

59+
6360
IMPORT_INPUT_CONFIG = {"gcs_source": {"input_uris": [GCP_AUTOML_TRANSLATION_BUCKET]}}
6461

6562
extract_object_id = CloudAutoMLHook.extract_object_id
@@ -69,10 +66,11 @@
6966
with models.DAG(
7067
"example_automl_translation",
7168
start_date=datetime(2021, 1, 1),
69+
schedule="@once",
7270
catchup=False,
7371
user_defined_macros={"extract_object_id": extract_object_id},
7472
tags=["example"],
75-
) as example_dag:
73+
) as dag:
7674
create_dataset_task = AutoMLCreateDatasetOperator(
7775
task_id="create_dataset_task", dataset=DATASET, location=GCP_AUTOML_LOCATION
7876
)
@@ -106,11 +104,25 @@
106104
project_id=GCP_PROJECT_ID,
107105
)
108106

107+
# TEST BODY
109108
import_dataset_task >> create_model
109+
# TEST TEARDOWN
110110
delete_model_task >> delete_datasets_task
111111

112112
# Task dependencies created via `XComArgs`:
113113
# create_dataset_task >> import_dataset_task
114114
# create_dataset_task >> create_model
115115
# create_model >> delete_model_task
116116
# create_dataset_task >> delete_datasets_task
117+
118+
from tests.system.utils.watcher import watcher
119+
120+
# This test needs watcher in order to properly mark success/failure
121+
# when "tearDown" task with trigger rule is part of the DAG
122+
list(dag.tasks) >> watcher()
123+
124+
125+
from tests.system.utils import get_test_run # noqa: E402
126+
127+
# Needed to run the example DAG with pytest (see: tests/system/README.md#run_via_pytest)
128+
test_run = get_test_run(dag)
Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,9 @@
4141
"GCP_AUTOML_VIDEO_BUCKET", "gs://INVALID BUCKET NAME/hmdb_split1.csv"
4242
)
4343

44-
# Example values
45-
DATASET_ID = "VCN123455678"
46-
4744
# Example model
4845
MODEL = {
4946
"display_name": "auto_model_1",
50-
"dataset_id": DATASET_ID,
5147
"video_classification_model_metadata": {},
5248
}
5349

@@ -69,12 +65,13 @@
6965
catchup=False,
7066
user_defined_macros={"extract_object_id": extract_object_id},
7167
tags=["example"],
72-
) as example_dag:
68+
) as dag:
7369
create_dataset_task = AutoMLCreateDatasetOperator(
7470
task_id="create_dataset_task", dataset=DATASET, location=GCP_AUTOML_LOCATION
7571
)
7672

7773
dataset_id = cast(str, XComArg(create_dataset_task, key="dataset_id"))
74+
MODEL["dataset_id"] = dataset_id
7875

7976
import_dataset_task = AutoMLImportDataOperator(
8077
task_id="import_dataset_task",
@@ -103,11 +100,24 @@
103100
project_id=GCP_PROJECT_ID,
104101
)
105102

103+
# TEST BODY
106104
import_dataset_task >> create_model
105+
# TEST TEARDOWN
107106
delete_model_task >> delete_datasets_task
108107

109108
# Task dependencies created via `XComArgs`:
110109
# create_dataset_task >> import_dataset_task
111110
# create_dataset_task >> create_model
112111
# create_model >> delete_model_task
113112
# create_dataset_task >> delete_datasets_task
113+
114+
from tests.system.utils.watcher import watcher
115+
116+
# This test needs watcher in order to properly mark success/failure
117+
# when "tearDown" task with trigger rule is part of the DAG
118+
list(dag.tasks) >> watcher()
119+
120+
from tests.system.utils import get_test_run # noqa: E402
121+
122+
# Needed to run the example DAG with pytest (see: tests/system/README.md#run_via_pytest)
123+
test_run = get_test_run(dag)
Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,10 @@
4242
"gs://INVALID BUCKET NAME/youtube_8m_videos_animal_tiny.csv",
4343
)
4444

45-
# Example values
46-
DATASET_ID = "VOT123456789"
4745

4846
# Example model
4947
MODEL = {
5048
"display_name": "auto_model_1",
51-
"dataset_id": DATASET_ID,
5249
"video_object_tracking_model_metadata": {},
5350
}
5451

@@ -70,12 +67,13 @@
7067
catchup=False,
7168
user_defined_macros={"extract_object_id": extract_object_id},
7269
tags=["example"],
73-
) as example_dag:
70+
) as dag:
7471
create_dataset_task = AutoMLCreateDatasetOperator(
7572
task_id="create_dataset_task", dataset=DATASET, location=GCP_AUTOML_LOCATION
7673
)
7774

7875
dataset_id = cast(str, XComArg(create_dataset_task, key="dataset_id"))
76+
MODEL["dataset_id"] = dataset_id
7977

8078
import_dataset_task = AutoMLImportDataOperator(
8179
task_id="import_dataset_task",
@@ -104,11 +102,24 @@
104102
project_id=GCP_PROJECT_ID,
105103
)
106104

105+
# TEST BODY
107106
import_dataset_task >> create_model
107+
# TEST TEARDOWN
108108
delete_model_task >> delete_datasets_task
109109

110110
# Task dependencies created via `XComArgs`:
111111
# create_dataset_task >> import_dataset_task
112112
# create_dataset_task >> create_model
113113
# create_model >> delete_model_task
114114
# create_dataset_task >> delete_datasets_task
115+
116+
from tests.system.utils.watcher import watcher
117+
118+
# This test needs watcher in order to properly mark success/failure
119+
# when "tearDown" task with trigger rule is part of the DAG
120+
list(dag.tasks) >> watcher()
121+
122+
from tests.system.utils import get_test_run # noqa: E402
123+
124+
# Needed to run the example DAG with pytest (see: tests/system/README.md#run_via_pytest)
125+
test_run = get_test_run(dag)

β€Žairflow/providers/google/cloud/example_dags/example_automl_vision_object_detection.py renamed to β€Žtests/system/providers/google/cloud/automl/example_automl_vision_object_detection.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,9 @@
4141
"GCP_AUTOML_DETECTION_BUCKET", "gs://INVALID BUCKET NAME/img/openimage/csv/salads_ml_use.csv"
4242
)
4343

44-
# Example values
45-
DATASET_ID = ""
46-
4744
# Example model
4845
MODEL = {
4946
"display_name": "auto_model",
50-
"dataset_id": DATASET_ID,
5147
"image_object_detection_model_metadata": {},
5248
}
5349

@@ -69,12 +65,13 @@
6965
catchup=False,
7066
user_defined_macros={"extract_object_id": extract_object_id},
7167
tags=["example"],
72-
) as example_dag:
68+
) as dag:
7369
create_dataset_task = AutoMLCreateDatasetOperator(
7470
task_id="create_dataset_task", dataset=DATASET, location=GCP_AUTOML_LOCATION
7571
)
7672

7773
dataset_id = cast(str, XComArg(create_dataset_task, key="dataset_id"))
74+
MODEL["dataset_id"] = dataset_id
7875

7976
import_dataset_task = AutoMLImportDataOperator(
8077
task_id="import_dataset_task",
@@ -103,11 +100,24 @@
103100
project_id=GCP_PROJECT_ID,
104101
)
105102

103+
# TEST BODY
106104
import_dataset_task >> create_model
105+
# TEST TEARDOWN
107106
delete_model_task >> delete_datasets_task
108107

109108
# Task dependencies created via `XComArgs`:
110109
# create_dataset_task >> import_dataset_task
111110
# create_dataset_task >> create_model
112111
# create_model >> delete_model_task
113112
# create_dataset_task >> delete_datasets_task
113+
114+
from tests.system.utils.watcher import watcher
115+
116+
# This test needs watcher in order to properly mark success/failure
117+
# when "tearDown" task with trigger rule is part of the DAG
118+
list(dag.tasks) >> watcher()
119+
120+
from tests.system.utils import get_test_run # noqa: E402
121+
122+
# Needed to run the example DAG with pytest (see: tests/system/README.md#run_via_pytest)
123+
test_run = get_test_run(dag)

0 commit comments

Comments
 (0)