home · contact · privacy
Catch POSTs to undefined targets, expand and refactor tests.
[plomtask] / plomtask / http.py
index 86db94d34ee5ea13630a3d550e9b9116cbfb1e48..cd3e4459dbe96f6ad0a65cba6ddf45a3162f0f3f 100644 (file)
@@ -24,7 +24,7 @@ class TaskServer(HTTPServer):
         self.jinja = JinjaEnv(loader=JinjaFSLoader(TEMPLATES_DIR))
 
 
-class ParamsParser:  # pylint: disable=too-few-public-methods
+class ParamsParser:
     """Wrapper for validating and retrieving GET params."""
 
     def __init__(self, params: dict[str, list[str]]) -> None:
@@ -37,7 +37,7 @@ class ParamsParser:  # pylint: disable=too-few-public-methods
         return self.params[key][0]
 
     def get_int_or_none(self, key: str) -> int | None:
-        """Retrieve int value of key yfrom self.params, on fail return None."""
+        """Retrieve int value of key from self.params, on empty return None."""
         if key not in self.params or not self.params[key]:
             return None
         val = self.params[key][0]
@@ -128,7 +128,10 @@ class TaskHandler(BaseHTTPRequestHandler):
             form_data = PostvarsParser(postvars)
             if site in ('day', 'process'):
                 getattr(self, f'do_POST_{site}')(conn, params, form_data)
-            conn.commit()
+                conn.commit()
+            else:
+                msg = f'Page not known as POST target: /{site}'
+                raise NotFoundException(msg)
             conn.close()
             self._redirect('/')
         except HandledException as error:
@@ -144,7 +147,7 @@ class TaskHandler(BaseHTTPRequestHandler):
 
     def do_POST_process(self, conn: DatabaseConnection, params: ParamsParser,
                         form_data: PostvarsParser) -> None:
-        """Update or insert Process of id_ and fields defined in postvars."""
+        """Update or insert Process of ?id= and fields defined in postvars."""
         id_ = params.get_int_or_none('id')
         process = Process.by_id(conn, id_, create=True)
         process.title.set(form_data.get_str('title'))