Skip to content

Commit 30331f9

Browse files
committed
🎯 feat: add raise error when pass rerun mode to release method.
1 parent 0c03814 commit 30331f9

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

src/ddeutil/workflow/workflow.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
from typing_extensions import Self
4242

4343
from .__types import DictData
44-
from .audits import NORMAL, Audit, ReleaseType, get_audit
44+
from .audits import NORMAL, RERUN, Audit, ReleaseType, get_audit
4545
from .conf import YamlParser, dynamic
4646
from .errors import WorkflowCancelError, WorkflowError, WorkflowTimeoutError
4747
from .event import Event
@@ -485,6 +485,14 @@ def release(
485485
extras=self.extras,
486486
)
487487

488+
if release_type == RERUN:
489+
# TODO: It will load previous audit and use this data to run with
490+
# the `rerun` method.
491+
raise NotImplementedError(
492+
"Release does not support for rerun type yet. Please use the "
493+
"`rerun` method instead."
494+
)
495+
488496
rs: Result = self.execute(
489497
params=values,
490498
run_id=parent_run_id,

tests/test_workflow_release.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from ddeutil.workflow import (
77
FORCE,
88
NORMAL,
9+
RERUN,
910
SKIP,
1011
SUCCESS,
1112
UTC,
@@ -214,10 +215,26 @@ def test_workflow_release_with_auto():
214215
"extra": {"enable_write_audit": True},
215216
}
216217
)
217-
rs: Result = workflow.release(
218-
release=datetime.now(),
219-
params={"asat-dt": datetime(2024, 10, 1)},
220-
)
218+
rs: Result = workflow.release(release=datetime.now(), params={})
221219
assert rs.status == SUCCESS
222220
assert rs.context["release"]["type"] == NORMAL
223221
assert rs.context["release"]["logical_date"].tzinfo == UTC
222+
223+
224+
def test_workflow_release_rerun():
225+
workflow: Workflow = Workflow.model_validate(
226+
obj={
227+
"name": "wf-scheduling-common",
228+
"jobs": {
229+
"first-job": {
230+
"stages": [
231+
{"name": "First Stage", "id": "first-stage"},
232+
{"name": "Second Stage", "id": "second-stage"},
233+
]
234+
}
235+
},
236+
"extra": {"enable_write_audit": True},
237+
}
238+
)
239+
with pytest.raises(NotImplementedError):
240+
workflow.release(release=datetime.now(), params={}, release_type=RERUN)

0 commit comments

Comments
 (0)