|
1 | 1 | import os |
2 | 2 | import tempfile |
| 3 | +from typing import Generator |
3 | 4 |
|
4 | 5 | import pytest |
5 | 6 | from airflow.models import DagBag, Variable |
6 | 7 | from airflow.timetables.trigger import CronTriggerTimetable |
7 | 8 | from airflow.utils.db import resetdb, initdb |
| 9 | + |
8 | 10 | from dags.daily_materialized_views_update import DAILY_MATERIALISED_VIEWS_DAG_NAME |
9 | 11 | from dags.fetch_notices_by_date import FETCHER_DAG_NAME |
10 | 12 | from tests import AIRFLOW_DAG_FOLDER |
11 | 13 |
|
| 14 | + |
12 | 15 | @pytest.fixture(scope="session", autouse=True) |
13 | | -def setup_airflow(): |
14 | | - # Setup |
| 16 | +def setup_airflow_for_all_tests() -> Generator[None, None, None]: |
15 | 17 | temp_db_file = tempfile.NamedTemporaryFile(mode="w+", suffix=".db") |
16 | 18 | os.environ["AIRFLOW__CORE__SQL_ALCHEMY_CONN"] = f"sqlite:///{temp_db_file.name}" |
17 | 19 | os.environ["AIRFLOW__CORE__LOAD_EXAMPLES"] = "False" |
18 | 20 | os.environ["AIRFLOW__CORE__UNIT_TEST_MODE"] = "True" |
19 | | - initdb(use_migration_files=False) |
20 | | - |
21 | | - # Run tests |
| 21 | + resetdb() |
| 22 | + initdb() |
22 | 23 | yield |
| 24 | + if os.path.exists(temp_db_file.name): |
| 25 | + temp_db_file.close() |
23 | 26 |
|
24 | | - # Cleanup |
25 | | - temp_db_file.close() |
26 | 27 |
|
27 | 28 | @pytest.fixture |
28 | | -def dag_bag(dag_materialised_view_update_schedule_variable_name, dag_fetch_schedule_variable_name) -> DagBag: |
| 29 | +def dag_bag(dag_materialised_view_update_schedule_variable_name: str, |
| 30 | + dag_fetch_schedule_variable_name: str) -> DagBag: |
29 | 31 | Variable.delete(key=dag_materialised_view_update_schedule_variable_name) |
30 | 32 | Variable.delete(key=dag_fetch_schedule_variable_name) |
31 | 33 | return DagBag( |
32 | 34 | dag_folder=AIRFLOW_DAG_FOLDER, |
33 | | - include_examples=False, #Same as: os.environ["AIRFLOW__CORE__LOAD_EXAMPLES"] = "False" |
| 35 | + include_examples=False, # Same as: os.environ["AIRFLOW__CORE__LOAD_EXAMPLES"] = "False" |
34 | 36 | read_dags_from_db=False, |
35 | 37 | collect_dags=True) |
36 | 38 |
|
|
0 commit comments