Added tests for nested exclude/negate queries
This commit is contained in:
parent
2042f537a6
commit
323b414441
|
@ -844,6 +844,39 @@ class Queries1Tests(BaseQuerysetTest):
|
||||||
)
|
)
|
||||||
Tag._meta.ordering = original_ordering
|
Tag._meta.ordering = original_ordering
|
||||||
|
|
||||||
|
def test_exclude(self):
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Item.objects.exclude(tags__name='t4'),
|
||||||
|
[repr(i) for i in Item.objects.filter(~Q(tags__name='t4'))])
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Item.objects.exclude(Q(tags__name='t4')|Q(tags__name='t3')),
|
||||||
|
[repr(i) for i in Item.objects.filter(~(Q(tags__name='t4')|Q(tags__name='t3')))])
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Item.objects.exclude(Q(tags__name='t4')|~Q(tags__name='t3')),
|
||||||
|
[repr(i) for i in Item.objects.filter(~(Q(tags__name='t4')|~Q(tags__name='t3')))])
|
||||||
|
|
||||||
|
def test_nested_exclude(self):
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Item.objects.exclude(~Q(tags__name='t4')),
|
||||||
|
[repr(i) for i in Item.objects.filter(~~Q(tags__name='t4'))])
|
||||||
|
|
||||||
|
def test_double_exclude(self):
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Item.objects.filter(Q(tags__name='t4')),
|
||||||
|
[repr(i) for i in Item.objects.filter(~~Q(tags__name='t4'))])
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Item.objects.filter(Q(tags__name='t4')),
|
||||||
|
[repr(i) for i in Item.objects.filter(~Q(~Q(tags__name='t4')))])
|
||||||
|
|
||||||
|
@unittest.expectedFailure
|
||||||
|
def test_exclude_in(self):
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Item.objects.exclude(Q(tags__name__in=['t4', 't3'])),
|
||||||
|
[repr(i) for i in Item.objects.filter(~Q(tags__name__in=['t4', 't3']))])
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Item.objects.filter(Q(tags__name__in=['t4', 't3'])),
|
||||||
|
[repr(i) for i in Item.objects.filter(~~Q(tags__name__in=['t4', 't3']))])
|
||||||
|
|
||||||
class Queries2Tests(TestCase):
|
class Queries2Tests(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
Number.objects.create(num=4)
|
Number.objects.create(num=4)
|
||||||
|
|
Loading…
Reference in New Issue