workflow

git clone https://git.godosa.eu/workflow

master

raw ยท 1459 bytes

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