|
36 | 36 | from airflow import models, settings |
37 | 37 | from airflow.configuration import conf |
38 | 38 | from airflow.exceptions import AirflowException, AirflowDagCycleException |
39 | | -from airflow.models import DAG, DagModel, TaskInstance as TI |
| 39 | +from airflow.models import DAG, DagModel, DagTag, TaskInstance as TI |
40 | 40 | from airflow.operators.bash_operator import BashOperator |
41 | 41 | from airflow.operators.dummy_operator import DummyOperator |
42 | 42 | from airflow.operators.subdag_operator import SubDagOperator |
|
46 | 46 | from airflow.utils.state import State |
47 | 47 | from airflow.utils.weight_rule import WeightRule |
48 | 48 | from tests.models import DEFAULT_DATE |
| 49 | +from tests.test_utils.db import clear_db_dags |
49 | 50 |
|
50 | 51 |
|
51 | 52 | class DagTest(unittest.TestCase): |
@@ -657,6 +658,15 @@ def test_following_previous_schedule_daily_dag_CET_to_CEST(self): |
657 | 658 | self.assertEqual(prev_local.isoformat(), "2018-03-24T03:00:00+01:00") |
658 | 659 | self.assertEqual(prev.isoformat(), "2018-03-24T02:00:00+00:00") |
659 | 660 |
|
| 661 | + def test_dagtag_repr(self): |
| 662 | + clear_db_dags() |
| 663 | + dag = DAG('dag-test-dagtag', start_date=DEFAULT_DATE, tags=['tag-1', 'tag-2']) |
| 664 | + dag.sync_to_db() |
| 665 | + with create_session() as session: |
| 666 | + self.assertEqual({'tag-1', 'tag-2'}, |
| 667 | + {repr(t) for t in session.query(DagTag).filter( |
| 668 | + DagTag.dag_id == 'dag-test-dagtag').all()}) |
| 669 | + |
660 | 670 | @patch('airflow.models.dag.timezone.utcnow') |
661 | 671 | def test_sync_to_db(self, mock_now): |
662 | 672 | dag = DAG( |
|
0 commit comments