From 81d4e80fd5aabe4e80f58e960affa795cf7d34ec Mon Sep 17 00:00:00 2001 From: godosa Date: Wed, 7 Oct 2026 07:27:17 +0200 Subject: workflow: initial public history --- tests/test_human_done.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tests/test_human_done.py (limited to 'tests/test_human_done.py') diff --git a/tests/test_human_done.py b/tests/test_human_done.py new file mode 100644 index 0000000..e6affee --- /dev/null +++ b/tests/test_human_done.py @@ -0,0 +1,40 @@ +import sys +import unittest +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) +from wflib import tasks as T + + +def ready(done): + doc = T.parse(f"# T\n\n## Pending\n\n- **t-x** [P2] (<1h): X.\n Done: {done}\n") + return doc.sections[0].items[0].runner_ready if hasattr(doc, "sections") else None + + +class HumanDoneTest(unittest.TestCase): + def test_owner_bound_subject(self): + self.assertTrue(ready("owner-bound task with Done not counted")) + + def test_owner_actions(self): + self.assertFalse(ready("owner confirms X")) + self.assertFalse(ready("owner approves X")) + self.assertFalse(ready("report to owner")) + self.assertFalse(ready("confirm it works")) + + def test_word_alone_is_fine(self): + self.assertTrue(ready("owner-facing docs updated; owner-private names scrubbed")) + self.assertTrue(ready("tests confirm the parser handles X")) + self.assertTrue(ready("the owner file is read")) + + def test_more_actions(self): + self.assertFalse(ready("owner says it is fine")) + self.assertFalse(ready("Owner tests it")) + self.assertFalse(ready("confirm with the owner")) + + def test_match_exposed(self): + doc = T.parse("# T\n\n## Pending\n\n- **t-x** [P2] (<1h): X.\n Done: owner approves X\n") + self.assertEqual(doc.sections[0].items[0].human_done_match, "owner approves") + + +if __name__ == "__main__": + unittest.main() -- cgit