home · contact · privacy
Overhaul as_dict generation to avoid endless nesting of objects.
[plomtask] / tests / days.py
index d14e0afc58bd358ff92c1a032ea6f0367081acd2..079a0ebee54eb8c26558f2b770152f0236d432e5 100644 (file)
@@ -81,42 +81,48 @@ class TestsWithServer(TestCaseWithServer):
     @staticmethod
     def day_dict(date: str) -> dict[str, object]:
         """Return JSON of Process to expect."""
-        d: dict[str, object] = {'day': {'id': date,
-                                        'comment': '',
-                                        'todos': []},
-                                'top_nodes': [],
-                                'make_type': '',
-                                'enablers_for': {},
-                                'disablers_for': {},
-                                'conditions_present': [],
-                                'processes': []}
-        return d
+        return {'id': date, 'comment': '', 'todos': []}
 
     def test_do_GET_day(self) -> None:
         """Test GET /day basics."""
         # check undefined day
         date = date_in_n_days(0)
-        expected = self.day_dict(date)
+        day = self.day_dict(date)
+        expected: dict[str, object]
+        expected = {'day': date,
+                    'top_nodes': [],
+                    'make_type': '',
+                    'enablers_for': {},
+                    'disablers_for': {},
+                    'conditions_present': [],
+                    'processes': [],
+                    '_library': {'Day': self.as_refs([day])}}
         self.check_json_get('/day', expected)
         # check "today", "yesterday", "tomorrow" days
         self.check_json_get('/day?date=today', expected)
-        expected = self.day_dict(date_in_n_days(1))
+        day = self.day_dict(date_in_n_days(1))
+        expected['day'] = day['id']
+        assert isinstance(expected['_library'], dict)
+        expected['_library']['Day'] = self.as_refs([day])
         self.check_json_get('/day?date=tomorrow', expected)
-        expected = self.day_dict(date_in_n_days(-1))
+        day = self.day_dict(date_in_n_days(-1))
+        expected['day'] = day['id']
+        expected['_library']['Day'] = self.as_refs([day])
         self.check_json_get('/day?date=yesterday', expected)
         # check wrong day strings
         self.check_get('/day?date=foo', 400)
         self.check_get('/day?date=2024-02-30', 400)
         # check defined day
         date = '2024-01-01'
-        expected = self.day_dict(date)
+        day = self.day_dict(date)
+        expected['day'] = day['id']
+        expected['_library']['Day'] = self.as_refs([day])
         self.check_json_get(f'/day?date={date}', expected)
         # check saved day
         post_day = {'day_comment': 'foo', 'make_type': ''}
         self.check_post(post_day, f'/day?date={date}', 302,
                         f'/day?date={date}&make_type=')
-        assert isinstance(expected['day'], dict)
-        expected['day']['comment'] = 'foo'
+        day['comment'] = post_day['day_comment']
         self.check_json_get(f'/day?date={date}', expected)
         # check GET parameter POST not affecting reply to non-parameter GET
         post_day['make_type'] = 'foo'