home · contact · privacy
In POST /todo, catch more illegal 'step_filler' values.
authorChristian Heller <c.heller@plomlompom.de>
Sat, 20 Jul 2024 22:02:46 +0000 (00:02 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Sat, 20 Jul 2024 22:02:46 +0000 (00:02 +0200)
plomtask/http.py
tests/todos.py

index cb131e2fd1501fd2616ee43c5f0ab0f21c9e65ac..bcd6d1cb6e80851d8e147ed4cf8713c6ab29f0ca 100644 (file)
@@ -644,7 +644,7 @@ class TaskHandler(BaseHTTPRequestHandler):
         is_done = len(self._form_data.get_all_str('done')) > 0
         calendarize = len(self._form_data.get_all_str('calendarize')) > 0
         comment = self._form_data.get_str('comment', ignore_strict=True)
-        for filler in step_fillers:
+        for filler in [f for f in step_fillers if f != 'ignore']:
             target_id: int
             to_int = filler
             for prefix in [p for p in ['make_empty_', 'make_full_']
@@ -659,7 +659,7 @@ class TaskHandler(BaseHTTPRequestHandler):
                 processes_to_make_empty += [target_id]
             elif filler.startswith('make_full_'):
                 processes_to_make_full += [target_id]
-            elif filler != 'ignore':
+            else:
                 adopted_child_ids += [target_id]
         to_remove = []
         for child in todo.children:
index 89d9a8cd456cedd4e6db9ae39ac16fc0f7834ca3..695d9a79b2a56361338bbcd55ea17ed5bad61e39 100644 (file)
@@ -421,6 +421,11 @@ class TestsWithServer(TestCaseWithServer):
         step_proc3 = self._step_as_dict(2, [], 3, 5, True)
         expected['steps_todo_to_process'] = [step_proc2, step_proc3]
         self.check_json_get('/todo?id=1', expected)
+        # test 'ignore' values for 'step_filler' are ignored, and intable
+        # 'step_filler' values are interchangeable with those of 'adopt'
+        todo_post = {'adopt': 5, 'step_filler': ['ignore', 4]}
+        self.check_post(todo_post, '/todo?id=1')
+        self.check_json_get('/todo?id=1', expected)
         # test cannot adopt into non-top-level elements of chain
         self.post_process(4, proc_post)
         self.post_process(3, proc_post | {'new_top_step': 4, 'step_of': [1]})