import datetime import freezegun import pendulum import pytest from common import common_tasks @freezegun.freeze_time(datetime.datetime(2022, 12, 27, 16, 3, 45)) @pytest.mark.parametrize( 'threshold, expected', [ ( datetime.timedelta(days=1), ['when_true'], ), ( datetime.timedelta(days=2), ['when_true'], ), ( datetime.timedelta(days=3), ['when_false'], ), ( datetime.timedelta(days=4), ['when_false'], ), ]) def test_backfill_detector_branch_operator(dag_fixture, threshold, expected): data_interval_end = pendulum.datetime(2022, 12, 25, tz="UTC") task = common_tasks.BackfillDetectorBranchOperator( task_id='testing', dag=dag_fixture, threshold=threshold, go_to_task_if_false=['when_false'], go_to_task_if_true=['when_true'], ) context = dict( data_interval_end=data_interval_end, ) result = task.choose_branch(context) assert result == expected