home · contact · privacy
Minor tests refactoring.
authorChristian Heller <c.heller@plomlompom.de>
Mon, 29 Apr 2024 03:57:44 +0000 (05:57 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 29 Apr 2024 03:57:44 +0000 (05:57 +0200)
tests/processes.py
tests/todos.py
tests/utils.py

index 06ed257689b0601e814a074c454cabe6ea0b6c98..165f566995b04f5c9dfc462001d33b46173b2842 100644 (file)
@@ -189,8 +189,7 @@ class TestsWithServer(TestCaseWithServer):
     def test_do_POST_process(self) -> None:
         """Test POST /process and its effect on the database."""
         self.assertEqual(0, len(Process.all(self.db_conn)))
     def test_do_POST_process(self) -> None:
         """Test POST /process and its effect on the database."""
         self.assertEqual(0, len(Process.all(self.db_conn)))
-        form_data = {'title': 'foo', 'description': 'foo', 'effort': 1.1}
-        self.check_post(form_data, '/process?id=', 302, '/process?id=1')
+        form_data = self.post_process()
         self.assertEqual(1, len(Process.all(self.db_conn)))
         self.check_post(form_data, '/process?id=FOO', 400)
         form_data['effort'] = 'foo'
         self.assertEqual(1, len(Process.all(self.db_conn)))
         self.check_post(form_data, '/process?id=FOO', 400)
         form_data['effort'] = 'foo'
@@ -205,16 +204,16 @@ class TestsWithServer(TestCaseWithServer):
         self.assertEqual(1, len(Process.all(self.db_conn)))
         form_data = {'title': 'foo', 'description': 'foo', 'effort': 1.0,
                      'condition': []}
         self.assertEqual(1, len(Process.all(self.db_conn)))
         form_data = {'title': 'foo', 'description': 'foo', 'effort': 1.0,
                      'condition': []}
-        self.check_post(form_data, '/process?id=', 302, '/process?id=2')
+        self.post_process(2, form_data)
         form_data['condition'] = [1]
         self.check_post(form_data, '/process?id=', 404)
         form_data_cond = {'title': 'foo', 'description': 'foo'}
         self.check_post(form_data_cond, '/condition', 302, '/condition?id=1')
         form_data['condition'] = [1]
         self.check_post(form_data, '/process?id=', 404)
         form_data_cond = {'title': 'foo', 'description': 'foo'}
         self.check_post(form_data_cond, '/condition', 302, '/condition?id=1')
-        self.check_post(form_data, '/process?id=', 302, '/process?id=3')
+        self.post_process(3, form_data)
         form_data['disables'] = [1]
         form_data['disables'] = [1]
-        self.check_post(form_data, '/process?id=', 302, '/process?id=4')
+        self.post_process(4, form_data)
         form_data['enables'] = [1]
         form_data['enables'] = [1]
-        self.check_post(form_data, '/process?id=', 302, '/process?id=5')
+        self.post_process(5, form_data)
         form_data['delete'] = ''
         self.check_post(form_data, '/process?id=', 404)
         self.check_post(form_data, '/process?id=6', 404)
         form_data['delete'] = ''
         self.check_post(form_data, '/process?id=', 404)
         self.check_post(form_data, '/process?id=6', 404)
@@ -222,7 +221,6 @@ class TestsWithServer(TestCaseWithServer):
 
     def test_do_GET(self) -> None:
         """Test /process and /processes response codes."""
 
     def test_do_GET(self) -> None:
         """Test /process and /processes response codes."""
-        form_data = {'title': 'foo', 'description': 'foo', 'effort': 1.1}
-        self.check_post(form_data, '/process?id=', 302, '/process?id=1')
+        self.post_process()
         self.check_get_defaults('/process')
         self.check_get('/processes', 200)
         self.check_get_defaults('/process')
         self.check_get('/processes', 200)
index 5736e5da9717616d47e09f0698ecf5865c4524f4..c6b28782bf98965fb6656dbdb7636793709d8c55 100644 (file)
@@ -288,9 +288,8 @@ class TestsWithServer(TestCaseWithServer):
 
     def test_do_POST_day(self) -> None:
         """Test Todo posting of POST /day."""
 
     def test_do_POST_day(self) -> None:
         """Test Todo posting of POST /day."""
-        form_data = {'title': '', 'description': '', 'effort': 1}
-        self.check_post(form_data, '/process?id=', 302, '/process?id=1')
-        self.check_post(form_data, '/process?id=', 302, '/process?id=2')
+        self.post_process()
+        self.post_process(2)
         proc = Process.by_id(self.db_conn, 1)
         proc2 = Process.by_id(self.db_conn, 2)
         form_data = {'comment': ''}
         proc = Process.by_id(self.db_conn, 1)
         proc2 = Process.by_id(self.db_conn, 2)
         form_data = {'comment': ''}
@@ -319,8 +318,7 @@ class TestsWithServer(TestCaseWithServer):
             self.check_post(form_data, '/todo?id=1', status, redir_url)
             return Todo.by_date(self.db_conn, '2024-01-01')[0]
         # test minimum
             self.check_post(form_data, '/todo?id=1', status, redir_url)
             return Todo.by_date(self.db_conn, '2024-01-01')[0]
         # test minimum
-        form_data = {'title': '', 'description': '', 'effort': 1}
-        self.check_post(form_data, '/process', 302, '/process?id=1')
+        self.post_process()
         form_data = {'comment': '', 'new_todo': 1}
         self.check_post(form_data, '/day?date=2024-01-01', 302)
         # test posting to bad URLs
         form_data = {'comment': '', 'new_todo': 1}
         self.check_post(form_data, '/day?date=2024-01-01', 302)
         # test posting to bad URLs
@@ -378,10 +376,9 @@ class TestsWithServer(TestCaseWithServer):
 
     def test_do_POST_day_todo_adoption(self) -> None:
         """Test Todos posted to Day view may adopt existing Todos."""
 
     def test_do_POST_day_todo_adoption(self) -> None:
         """Test Todos posted to Day view may adopt existing Todos."""
-        form_data = {'title': '', 'description': '', 'effort': 1}
-        self.check_post(form_data, '/process', 302, '/process?id=1')
+        form_data = self.post_process()
         form_data['new_top_step'] = 1
         form_data['new_top_step'] = 1
-        self.check_post(form_data, '/process', 302, '/process?id=2')
+        form_data = self.post_process(2, form_data)
         form_data = {'comment': '', 'new_todo': 1}
         self.check_post(form_data, '/day?date=2024-01-01', 302)
         form_data = {'comment': '', 'new_todo': 2}
         form_data = {'comment': '', 'new_todo': 1}
         self.check_post(form_data, '/day?date=2024-01-01', 302)
         form_data = {'comment': '', 'new_todo': 2}
@@ -395,8 +392,7 @@ class TestsWithServer(TestCaseWithServer):
 
     def test_do_GET_todo(self) -> None:
         """Test GET /todo response codes."""
 
     def test_do_GET_todo(self) -> None:
         """Test GET /todo response codes."""
-        form_data = {'title': '', 'description': '', 'effort': 1}
-        self.check_post(form_data, '/process?id=', 302, '/process?id=1')
+        self.post_process()
         form_data = {'comment': '', 'new_todo': 1}
         self.check_post(form_data, '/day?date=2024-01-01', 302)
         self.check_get('/todo', 400)
         form_data = {'comment': '', 'new_todo': 1}
         self.check_post(form_data, '/day?date=2024-01-01', 302)
         self.check_get('/todo', 400)
index 545a2ba2881372e2bcd479ecd4e8cd2d7da2ed8c..b7d126931f2195402db85b0ca61c87b791f3be77 100644 (file)
@@ -5,7 +5,7 @@ from http.client import HTTPConnection
 from urllib.parse import urlencode
 from datetime import datetime
 from os import remove as remove_file
 from urllib.parse import urlencode
 from datetime import datetime
 from os import remove as remove_file
-from typing import Mapping
+from typing import Mapping, Any
 from plomtask.db import DatabaseFile, DatabaseConnection
 from plomtask.http import TaskHandler, TaskServer
 from plomtask.processes import Process, ProcessStep
 from plomtask.db import DatabaseFile, DatabaseConnection
 from plomtask.http import TaskHandler, TaskServer
 from plomtask.processes import Process, ProcessStep
@@ -84,3 +84,12 @@ class TestCaseWithServer(TestCaseWithDB):
         self.check_get(f'{path}?id=foo', 400)
         self.check_get(f'/{path}?id=0', 500)
         self.check_get(f'{path}?id=1', 200)
         self.check_get(f'{path}?id=foo', 400)
         self.check_get(f'/{path}?id=0', 500)
         self.check_get(f'{path}?id=1', 200)
+
+    def post_process(self, id_: int = 1,
+                     form_data: dict[str, Any] | None = None
+                     ) -> dict[str, Any]:
+        """POST basic Process."""
+        if not form_data:
+            form_data = {'title': 'foo', 'description': 'foo', 'effort': 1.1}
+        self.check_post(form_data, '/process?id=', 302, f'/process?id={id_}')
+        return form_data