|
| 1 | +# import os |
| 2 | +# |
| 3 | +# from airflow import DAG |
| 4 | +# from airflow.models import DagBag, Variable |
| 5 | +# from airflow.timetables.trigger import CronTriggerTimetable |
| 6 | +# |
| 7 | +# from ted_sws import DAG_MATERIALIZED_VIEW_UPDATE_DEFAULT_TIMETABLE |
| 8 | +# |
| 9 | +# |
| 10 | +# def test_daily_materialised_view_change_timetable_from_airflow_variable_after_reparse(dag_bag: DagBag, |
| 11 | +# dag_materialised_view_update_schedule_variable_name: str, |
| 12 | +# daily_materialised_views_dag_id: str, |
| 13 | +# example_dag_cron_table: CronTriggerTimetable, |
| 14 | +# airflow_timetable_import_error_message: str): |
| 15 | +# daily_materialised_view_dag: DAG = dag_bag.get_dag(dag_id=daily_materialised_views_dag_id) |
| 16 | +# |
| 17 | +# assert daily_materialised_view_dag is not None |
| 18 | +# assert daily_materialised_view_dag.schedule_interval != example_dag_cron_table._expression |
| 19 | +# |
| 20 | +# Variable.set(key=dag_materialised_view_update_schedule_variable_name, value=example_dag_cron_table._expression) |
| 21 | +# dag_bag.collect_dags(only_if_updated=False) |
| 22 | +# daily_materialised_view_dag: DAG = dag_bag.get_dag(dag_id=daily_materialised_views_dag_id) |
| 23 | +# |
| 24 | +# assert daily_materialised_view_dag is not None |
| 25 | +# assert daily_materialised_view_dag.schedule_interval == example_dag_cron_table._expression |
| 26 | +# assert all(airflow_timetable_import_error_message not in error for error in dag_bag.import_errors.values()) |
| 27 | +# |
| 28 | +# |
| 29 | +# def test_daily_materialised_view_change_timetable_from_env_variable_after_reparse(dag_bag: DagBag, |
| 30 | +# dag_materialised_view_update_schedule_variable_name: str, |
| 31 | +# daily_materialised_views_dag_id: str, |
| 32 | +# example_dag_cron_table: CronTriggerTimetable, |
| 33 | +# airflow_timetable_import_error_message: str): |
| 34 | +# fetcher_dag: DAG = dag_bag.get_dag(dag_id=daily_materialised_views_dag_id) |
| 35 | +# |
| 36 | +# assert fetcher_dag is not None |
| 37 | +# assert fetcher_dag.schedule_interval != example_dag_cron_table._expression |
| 38 | +# |
| 39 | +# os.environ[dag_materialised_view_update_schedule_variable_name] = example_dag_cron_table._expression |
| 40 | +# dag_bag.collect_dags(only_if_updated=False) |
| 41 | +# fetcher_dag: DAG = dag_bag.get_dag(dag_id=daily_materialised_views_dag_id) |
| 42 | +# |
| 43 | +# assert fetcher_dag is not None |
| 44 | +# assert fetcher_dag.schedule_interval == example_dag_cron_table._expression |
| 45 | +# assert all(airflow_timetable_import_error_message not in error for error in dag_bag.import_errors.values()) |
| 46 | +# |
| 47 | +# |
| 48 | +# def test_daily_materialised_view_has_default_timetable_if_no_variable_is_set_after_reparse(dag_bag: DagBag, |
| 49 | +# dag_materialised_view_update_schedule_variable_name: str, |
| 50 | +# daily_materialised_views_dag_id: str, |
| 51 | +# airflow_timetable_import_error_message: str): |
| 52 | +# env_var_value = os.getenv(dag_materialised_view_update_schedule_variable_name) |
| 53 | +# is_env_var_set: bool = True if env_var_value is not None else False |
| 54 | +# if is_env_var_set: |
| 55 | +# del os.environ[dag_materialised_view_update_schedule_variable_name] |
| 56 | +# airflow_var_value = Variable.get(key=dag_materialised_view_update_schedule_variable_name, default_var=None) |
| 57 | +# is_airflow_var_set: bool = True if airflow_var_value is not None else False |
| 58 | +# if is_airflow_var_set: |
| 59 | +# Variable.delete(key=dag_materialised_view_update_schedule_variable_name) |
| 60 | +# |
| 61 | +# dag_bag.collect_dags(only_if_updated=False) |
| 62 | +# fetcher_dag: DAG = dag_bag.get_dag(dag_id=daily_materialised_views_dag_id) |
| 63 | +# |
| 64 | +# assert fetcher_dag is not None |
| 65 | +# assert fetcher_dag.schedule_interval == DAG_MATERIALIZED_VIEW_UPDATE_DEFAULT_TIMETABLE |
| 66 | +# assert all(airflow_timetable_import_error_message not in error for error in dag_bag.import_errors.values()) |
| 67 | +# |
| 68 | +# if is_env_var_set: |
| 69 | +# os.environ[dag_materialised_view_update_schedule_variable_name] = env_var_value |
| 70 | +# if is_airflow_var_set: |
| 71 | +# Variable.set(key=dag_materialised_view_update_schedule_variable_name, value=airflow_var_value) |
| 72 | +# |
| 73 | +# |
| 74 | +# def test_daily_materialised_view_gets_incorrect_timetable_after_reparse(dag_bag: DagBag, |
| 75 | +# dag_materialised_view_update_schedule_variable_name: str, |
| 76 | +# daily_materialised_views_dag_id: str, |
| 77 | +# example_wrong_cron_table: str, |
| 78 | +# airflow_timetable_import_error_message: str): |
| 79 | +# fetcher_dag: DAG = dag_bag.get_dag(dag_id=daily_materialised_views_dag_id) |
| 80 | +# |
| 81 | +# assert fetcher_dag is not None |
| 82 | +# |
| 83 | +# Variable.set(key=dag_materialised_view_update_schedule_variable_name, value=example_wrong_cron_table) |
| 84 | +# |
| 85 | +# dag_bag.collect_dags(only_if_updated=False) |
| 86 | +# |
| 87 | +# assert any(airflow_timetable_import_error_message in error for error in dag_bag.import_errors.values()) |
0 commit comments