aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/tests/test_ledgers.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_ledgers.py')
-rw-r--r--tests/test_ledgers.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/test_ledgers.py b/tests/test_ledgers.py
new file mode 100644
index 0000000..1a1add1
--- /dev/null
+++ b/tests/test_ledgers.py
@@ -0,0 +1,26 @@
+import sys
+import unittest
+from pathlib import Path
+
+sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
+from wflib import ledgers as L
+
+PLAN = "# P\n**Goal:** g\n### Task 1: A\nx\n### Task 2: B\n### Task 3: C\n"
+
+
+class SummaryTest(unittest.TestCase):
+ def test_resumes_at_first_task_without_complete_line(self):
+ ledger = "# SDD ledger — plan: p.md\nTask 1: complete (x)\nTask 2: Ruling: y\nTask 2: complete (z)\n"
+ self.assertEqual(L.summary(PLAN, ledger), "done 1, 2; resume at Task 3 (task-start PLAN 3)")
+
+ def test_ruling_line_is_not_completion(self):
+ self.assertEqual(L.summary(PLAN, "Task 1: Ruling: complete rewrite\n"),
+ "done none; resume at Task 1 (task-start PLAN 1)")
+
+ def test_all_done_reports_last_final_review_line(self):
+ ledger = "Task 1: complete\nTask 2: complete\nTask 3: complete\nFinal review: running\nFinal review: clean\n"
+ self.assertEqual(L.summary(PLAN, ledger), "done 1, 2, 3; all tasks done; Final review: clean")
+
+
+if __name__ == "__main__":
+ unittest.main()