def test_trigger_policy_all_failed(self): operation_run = OperationRunFactory() operation = operation_run.operation operation.trigger_policy = TriggerPolicy.ALL_FAILED operation.save() # No upstream assert operation_run.check_upstream_trigger() is True # Add non done upstream upstream_run1 = OperationRunFactory() operation_run.upstream_runs.set([upstream_run1]) assert operation_run.check_upstream_trigger() is False # A running upstream OperationRunStatus.objects.create(status=OperationStatuses.RUNNING, operation_run=upstream_run1) assert operation_run.check_upstream_trigger() is False # A failed upstream OperationRunStatus.objects.create(status=OperationStatuses.FAILED, operation_run=upstream_run1) assert operation_run.check_upstream_trigger() is True # Add skipped upstream upstream_run2 = OperationRunFactory() operation_run.upstream_runs.set([upstream_run2]) OperationRunStatus.objects.create(status=OperationStatuses.SKIPPED, operation_run=upstream_run2) assert operation_run.check_upstream_trigger() is False # Add succeeded upstream upstream_run3 = OperationRunFactory() operation_run.upstream_runs.set([upstream_run3]) OperationRunStatus.objects.create(status=OperationStatuses.SUCCEEDED, operation_run=upstream_run3) assert operation_run.check_upstream_trigger() is False # Add many failed upstream upstream_run4 = OperationRunFactory() operation_run.upstream_runs.set([upstream_run1, upstream_run4]) OperationRunStatus.objects.create(status=OperationStatuses.FAILED, operation_run=upstream_run4) assert operation_run.check_upstream_trigger() is True # Many done upstreams operation_run.upstream_runs.set( [upstream_run1, upstream_run2, upstream_run3]) assert operation_run.check_upstream_trigger() is False
def test_trigger_policy_one_done(self): operation_run = OperationRunFactory() operation = operation_run.operation operation.trigger_policy = TriggerPolicy.ONE_DONE operation.save() # No upstream assert operation_run.check_upstream_trigger() is False # Add non done upstream upstream_run1 = OperationRunFactory() operation_run.upstream_runs.set([upstream_run1]) assert operation_run.check_upstream_trigger() is False # A running upstream OperationRunStatus.objects.create(status=OperationStatuses.RUNNING, operation_run=upstream_run1) assert operation_run.check_upstream_trigger() is False # A failed upstream OperationRunStatus.objects.create(status=OperationStatuses.FAILED, operation_run=upstream_run1) assert operation_run.check_upstream_trigger() is True # Add skipped upstream upstream_run2 = OperationRunFactory() operation_run.upstream_runs.set([upstream_run2]) OperationRunStatus.objects.create(status=OperationStatuses.SKIPPED, operation_run=upstream_run2) assert operation_run.check_upstream_trigger() is True # Add succeeded upstream upstream_run3 = OperationRunFactory() operation_run.upstream_runs.set([upstream_run3]) OperationRunStatus.objects.create(status=OperationStatuses.SUCCEEDED, operation_run=upstream_run3) assert operation_run.check_upstream_trigger() is True # Add another upstream still True upstream_run4 = OperationRunFactory() operation_run.upstream_runs.add(upstream_run4) assert operation_run.check_upstream_trigger() is True