diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..c0df2ad --- /dev/null +++ b/TODO.md @@ -0,0 +1,22 @@ +# TODO: +* [ ] Prevent duplicates using Todoist ID + * e.g. `taskwarrior.filter_tasks({'todoistid.not': '...'})` +* [ ] Support `start`, `until` and `for` + * Don't do within recur parsing, reparse whole string + * https://get.todoist.help/hc/en-us/articles/360000636289 +* [ ] Support repetition as regular period or offset from completion date (`every!`) + * e.g. `every! 30 days` would be due 30 days after completion date +* [ ] Other 'every' + * every 3rd friday + * every 27th -- every 27th of the month (every 27 also works) + * every jan 27th + * every last day -- every last day of the month +* [ ] Delete todoist cache or add warning so user does not forget that potentially sensitive data is lying around in file system +* [ ] Handle inconsistencies (i.e. throw error or prompt for user input) + * Taskwarrior: 'monthly' just means 30d (see: [link](https://github.com/GothenburgBitFactory/taskwarrior/issues/1647)) + * Taskwarrior: 'every monday,tuesday' is not possible + +Testing: +* [ ] 'ev' as shortform for every +* [ ] For inconsistencies in meaning or support, an exception should be thrown + diff --git a/tests/test_recur.py b/tests/test_recur.py index 0b49bcf..b7f6111 100644 --- a/tests/test_recur.py +++ b/tests/test_recur.py @@ -4,7 +4,6 @@ Tests parsing `recur` strings from Todoist `date_string`s """ from todoist_taskwarrior import utils -# TODO: try with every and ev def test_hourly(): assert utils.parse_recur('every hour') == 'hourly' @@ -60,7 +59,6 @@ def test_day_of_week(): """ The actual day should be indicated in the `due` property, so here we just need to ensure that the recurrence is correct. """ - # TODO: test every day of the week (incl short forms) assert utils.parse_recur('every mon') == 'weekly' assert utils.parse_recur('every monday') == 'weekly' assert utils.parse_recur('every tuesday') == 'weekly' @@ -81,9 +79,6 @@ def test_day_of_month(): assert utils.parse_recur('every 22nd') == 'monthly' assert utils.parse_recur('every 23rd') == 'monthly' assert utils.parse_recur('every 24th') == 'monthly' - - # TODO: taskwarrior doesn't support this *exactly* -- monthly just means 30d - # https://github.com/GothenburgBitFactory/taskwarrior/issues/1647 assert utils.parse_recur('every last day') == 'monthly' @@ -94,8 +89,5 @@ def test_annually(): def test_unsupported(): - # TODO: expect exception - # taskwarrior doesn't support reccurances of form - # - every monday,tuesday,... pass