260705_2
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import json
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from common_util.common_util_workflow import (
|
||||
load_project_workflow,
|
||||
patch_project_workflow_stale,
|
||||
)
|
||||
|
||||
|
||||
class LoadProjectWorkflowTest(unittest.TestCase):
|
||||
def test_load_project_workflow(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temporary_directory:
|
||||
project_root = Path(temporary_directory)
|
||||
|
||||
self.assertEqual(
|
||||
load_project_workflow(project_root),
|
||||
{
|
||||
"current_stage": "scan",
|
||||
"completed": [],
|
||||
"stale_from": None,
|
||||
"stage1_confirmed": None,
|
||||
},
|
||||
)
|
||||
|
||||
saved = {"current_stage": "route", "completed": ["scan"]}
|
||||
(project_root / "workflow.json").write_text(
|
||||
json.dumps(saved, ensure_ascii=False),
|
||||
encoding="utf-8",
|
||||
)
|
||||
self.assertEqual(load_project_workflow(project_root), saved)
|
||||
|
||||
(project_root / "workflow.json").write_text("[]", encoding="utf-8")
|
||||
with self.assertRaises(ValueError):
|
||||
load_project_workflow(project_root)
|
||||
|
||||
def test_patch_project_workflow_stale(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temporary_directory:
|
||||
project_root = Path(temporary_directory)
|
||||
workflow_path = project_root / "workflow.json"
|
||||
|
||||
patch_project_workflow_stale(project_root, "route")
|
||||
self.assertFalse(workflow_path.exists())
|
||||
|
||||
saved = {
|
||||
"current_stage": "surface",
|
||||
"completed": ["scan"],
|
||||
"stale_from": None,
|
||||
"stage1_confirmed": {"method": "tin"},
|
||||
}
|
||||
workflow_path.write_text(
|
||||
json.dumps(saved, ensure_ascii=False),
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
patch_project_workflow_stale(project_root, "route")
|
||||
|
||||
updated = json.loads(workflow_path.read_text(encoding="utf-8"))
|
||||
self.assertEqual(updated["stale_from"], "route")
|
||||
self.assertEqual(updated["current_stage"], saved["current_stage"])
|
||||
self.assertEqual(updated["completed"], saved["completed"])
|
||||
self.assertEqual(updated["stage1_confirmed"], saved["stage1_confirmed"])
|
||||
Reference in New Issue
Block a user