def test_Day_by_date_range_filled(self) -> None:
"""Test Day.by_date_range_filled."""
date1, date2, date3 = self.default_ids
- day1, day2, day3 = self.check_all()
+ day1 = Day(date1)
+ day2 = Day(date2)
+ day3 = Day(date3)
+ day1.save(self.db_conn)
+ day2.save(self.db_conn)
+ day3.save(self.db_conn)
# check date range is a closed interval
self.assertEqual(Day.by_date_range_filled(self.db_conn, date1, date3),
[day1, day2, day3])
self.check_storage([obj])
def test_from_table_row(self) -> None:
- """Test .from_table_row() properly reads in class from DB."""
+ """Test .from_table_row() properly reads in class directly from DB."""
if not hasattr(self, 'checked_class'):
return
id_ = self.default_ids[0]
attr = getattr(retrieved, attr_name)
self.assertEqual(sorted(attr.history.values()), vals)
- def check_all(self) -> tuple[Any, Any, Any]:
- """Test .all()."""
- # pylint: disable=not-callable
- item1 = self.checked_class(self.default_ids[0])
- item2 = self.checked_class(self.default_ids[1])
- item3 = self.checked_class(self.default_ids[2])
- # check pre-save .all() returns empty list
+ def test_all(self) -> None:
+ """Test .all() and its relation to cache and savings."""
+ if not hasattr(self, 'checked_class'):
+ return
+ id_1, id_2, id_3 = self.default_ids
+ item1 = self.checked_class(id_1, **self.default_init_kwargs)
+ item2 = self.checked_class(id_2, **self.default_init_kwargs)
+ item3 = self.checked_class(id_3, **self.default_init_kwargs)
+ # check .all() returns empty list on un-cached items
self.assertEqual(self.checked_class.all(self.db_conn), [])
- # check that all() shows all saved, but no unsaved items
- item1.save(self.db_conn)
+ # check that all() shows only cached/saved items
+ item1.cache()
item3.save(self.db_conn)
self.assertEqual(sorted(self.checked_class.all(self.db_conn)),
sorted([item1, item3]))
item2.save(self.db_conn)
self.assertEqual(sorted(self.checked_class.all(self.db_conn)),
sorted([item1, item2, item3]))
- return item1, item2, item3
- def test_singularity(self)-> None:
+ def test_singularity(self) -> None:
"""Test pointers made for single object keep pointing to it."""
if not hasattr(self, 'checked_class'):
return
obj.save(self.db_conn)
attr_name = self.checked_class.to_save[-1]
attr = getattr(obj, attr_name)
+ new_attr: str | int | float | bool
if isinstance(attr, (int, float)):
new_attr = attr + 1
elif isinstance(attr, str):