diff options
Diffstat (limited to 'tests/test_human_done.py')
| -rw-r--r-- | tests/test_human_done.py | 40 |
1 files changed, 40 insertions, 0 deletions
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() |
