diff --git a/docs/apache-airflow-providers-google/operators/leveldb/leveldb.rst b/docs/apache-airflow-providers-google/operators/leveldb/leveldb.rst index 1a5ad8fa14985..5c8a745e88105 100644 --- a/docs/apache-airflow-providers-google/operators/leveldb/leveldb.rst +++ b/docs/apache-airflow-providers-google/operators/leveldb/leveldb.rst @@ -36,7 +36,7 @@ Put key Get, put, delete key or write_batch, create database with comparator or different options in LevelDB is performed with the :class:`~airflow.providers.google.leveldb.operators.leveldb.LevelDBOperator` operator. -.. exampleinclude:: /../../airflow/providers/google/leveldb/example_dags/example_leveldb.py +.. exampleinclude:: /../../tests/system/providers/google/leveldb/example_leveldb.py :language: python :dedent: 4 :start-after: [START howto_operator_leveldb_put_key] diff --git a/airflow/providers/google/leveldb/example_dags/__init__.py b/tests/system/providers/google/__init__.py similarity index 100% rename from airflow/providers/google/leveldb/example_dags/__init__.py rename to tests/system/providers/google/__init__.py diff --git a/tests/system/providers/google/leveldb/__init__.py b/tests/system/providers/google/leveldb/__init__.py new file mode 100644 index 0000000000000..217e5db960782 --- /dev/null +++ b/tests/system/providers/google/leveldb/__init__.py @@ -0,0 +1,17 @@ +# +# 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. diff --git a/airflow/providers/google/leveldb/example_dags/example_leveldb.py b/tests/system/providers/google/leveldb/example_leveldb.py similarity index 72% rename from airflow/providers/google/leveldb/example_dags/example_leveldb.py rename to tests/system/providers/google/leveldb/example_leveldb.py index c703c86c96a0c..cc9f6519b98c0 100644 --- a/airflow/providers/google/leveldb/example_dags/example_leveldb.py +++ b/tests/system/providers/google/leveldb/example_leveldb.py @@ -19,13 +19,18 @@ Example use of LevelDB operators. """ +import os from datetime import datetime from airflow import models from airflow.providers.google.leveldb.operators.leveldb import LevelDBOperator +from airflow.utils.trigger_rule import TriggerRule + +ENV_ID = os.environ.get("SYSTEM_TESTS_ENV_ID") +DAG_ID = "example_leveldb" with models.DAG( - 'example_leveldb', + DAG_ID, start_date=datetime(2021, 1, 1), schedule_interval='@once', catchup=False, @@ -40,6 +45,19 @@ command='put', key=b'another_key', value=b'another_value', + trigger_rule=TriggerRule.ALL_DONE, ) # [END howto_operator_leveldb_put_key] get_key_leveldb_task >> put_key_leveldb_task + + from tests.system.utils.watcher import watcher + + # This test needs watcher in order to properly mark success/failure + # when "tearDown" task with trigger rule is part of the DAG + list(dag.tasks) >> watcher() + + +from tests.system.utils import get_test_run # noqa: E402 + +# Needed to run the example DAG with pytest (see: tests/system/README.md#run_via_pytest) +test_run = get_test_run(dag)