Un-wait a waiting task when done

Implements #2322
This commit is contained in:
Max Rossmannek 2020-12-12 19:24:12 +01:00 committed by Tomas Babej
parent 5c92dea674
commit 33dcea68f5
2 changed files with 20 additions and 0 deletions

View file

@ -94,6 +94,10 @@ int CmdDone::execute (std::string&)
task.addAnnotation (Context::getContext ().config.get ("journal.time.stop.annotation"));
}
// Un-wait the task, if waiting.
if (task.has ("wait"))
task.remove ("wait");
if (permission (taskDifferences (before, task) + question, filtered.size ()))
{
updateRecurrenceMask (task);

View file

@ -100,6 +100,22 @@ class Test1486(TestCase):
self.assertNotIn('regular', out)
class TestFeature2322(TestCase):
def setUp(self):
"""Executed before each test in the class"""
self.t = Task()
def test_done_unwait(self):
"""2322: Done should un-wait a waiting task"""
self.t("add foo wait:tomorrow")
code, out, err = self.t("export")
self.assertIn('"wait":', out)
self.t("1 done")
code, out, err = self.t("export")
self.assertNotIn('"wait":', out)
if __name__ == "__main__":
from simpletap import TAPTestRunner
unittest.main(testRunner=TAPTestRunner())