aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/tests/test_human_done.py
blob: e6affeeda17e837548e0d1849c1b06e5ffe5f4da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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()