django-model-utils/tests/test_managers/test_query_manager.py

30 lines
878 B
Python
Raw Normal View History

from __future__ import annotations
from django.test import TestCase
from tests.models import Post
class QueryManagerTests(TestCase):
2023-03-22 17:50:18 +00:00
def setUp(self) -> None:
data = ((True, True, 0),
(True, False, 4),
(False, False, 2),
(False, True, 3),
(True, True, 1),
(True, False, 5))
for p, c, o in data:
Post.objects.create(published=p, confirmed=c, order=o)
2023-03-22 17:50:18 +00:00
def test_passing_kwargs(self) -> None:
qs = Post.public.all()
self.assertEqual([p.order for p in qs], [0, 1, 4, 5])
2023-03-22 17:50:18 +00:00
def test_passing_Q(self) -> None:
qs = Post.public_confirmed.all()
self.assertEqual([p.order for p in qs], [0, 1])
2023-03-22 17:50:18 +00:00
def test_ordering(self) -> None:
qs = Post.public_reversed.all()
self.assertEqual([p.order for p in qs], [5, 4, 1, 0])