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()
|