2023-03-21 13:21:03 +00:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
2017-01-05 14:29:35 +00:00
|
|
|
from django.test import TestCase
|
|
|
|
|
|
2017-02-15 23:00:10 +00:00
|
|
|
from tests.models import CustomSoftDelete
|
2017-01-05 14:29:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class CustomSoftDeleteManagerTests(TestCase):
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_custom_manager_empty(self) -> None:
|
2024-04-16 01:59:50 +00:00
|
|
|
qs = CustomSoftDelete.available_objects.only_read()
|
2017-01-05 14:29:35 +00:00
|
|
|
self.assertEqual(qs.count(), 0)
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_custom_qs_empty(self) -> None:
|
2024-04-16 01:59:50 +00:00
|
|
|
qs = CustomSoftDelete.available_objects.all().only_read()
|
2017-01-05 14:29:35 +00:00
|
|
|
self.assertEqual(qs.count(), 0)
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_is_read(self) -> None:
|
2017-01-05 14:29:35 +00:00
|
|
|
for is_read in [True, False, True, False]:
|
2024-04-16 01:59:50 +00:00
|
|
|
CustomSoftDelete.available_objects.create(is_read=is_read)
|
|
|
|
|
qs = CustomSoftDelete.available_objects.only_read()
|
2017-01-05 14:29:35 +00:00
|
|
|
self.assertEqual(qs.count(), 2)
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_is_read_removed(self) -> None:
|
2017-01-05 14:29:35 +00:00
|
|
|
for is_read, is_removed in [(True, True), (True, False), (False, False), (False, True)]:
|
2024-04-16 01:59:50 +00:00
|
|
|
CustomSoftDelete.available_objects.create(is_read=is_read, is_removed=is_removed)
|
|
|
|
|
qs = CustomSoftDelete.available_objects.only_read()
|
2017-01-05 14:29:35 +00:00
|
|
|
self.assertEqual(qs.count(), 1)
|