Refs #32548 -- Added tests for passing conditional expressions to Q().
This commit is contained in:
parent
45814af619
commit
54f60bc85d
|
@ -838,6 +838,12 @@ class BasicExpressionsTests(TestCase):
|
||||||
with self.subTest(conditions):
|
with self.subTest(conditions):
|
||||||
self.assertCountEqual(Employee.objects.filter(conditions), [self.max])
|
self.assertCountEqual(Employee.objects.filter(conditions), [self.max])
|
||||||
|
|
||||||
|
def test_boolean_expression_in_Q(self):
|
||||||
|
is_poc = Company.objects.filter(point_of_contact=OuterRef('pk'))
|
||||||
|
self.gmbh.point_of_contact = self.max
|
||||||
|
self.gmbh.save()
|
||||||
|
self.assertCountEqual(Employee.objects.filter(Q(Exists(is_poc))), [self.max])
|
||||||
|
|
||||||
|
|
||||||
class IterableLookupInnerExpressionsTests(TestCase):
|
class IterableLookupInnerExpressionsTests(TestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
@ -172,6 +172,17 @@ class PickleabilityTestCase(TestCase):
|
||||||
m2ms = pickle.loads(pickle.dumps(m2ms))
|
m2ms = pickle.loads(pickle.dumps(m2ms))
|
||||||
self.assertSequenceEqual(m2ms, [m2m])
|
self.assertSequenceEqual(m2ms, [m2m])
|
||||||
|
|
||||||
|
def test_pickle_boolean_expression_in_Q__queryset(self):
|
||||||
|
group = Group.objects.create(name='group')
|
||||||
|
Event.objects.create(title='event', group=group)
|
||||||
|
groups = Group.objects.filter(
|
||||||
|
models.Q(models.Exists(
|
||||||
|
Event.objects.filter(group_id=models.OuterRef('id')),
|
||||||
|
)),
|
||||||
|
)
|
||||||
|
groups2 = pickle.loads(pickle.dumps(groups))
|
||||||
|
self.assertSequenceEqual(groups2, [group])
|
||||||
|
|
||||||
def test_pickle_exists_queryset_still_usable(self):
|
def test_pickle_exists_queryset_still_usable(self):
|
||||||
group = Group.objects.create(name='group')
|
group = Group.objects.create(name='group')
|
||||||
Event.objects.create(title='event', group=group)
|
Event.objects.create(title='event', group=group)
|
||||||
|
|
Loading…
Reference in New Issue