summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlexey Voronov <despawn@gmail.com>2013-12-22 00:03:17 +0200
committerTim Graham <timograham@gmail.com>2014-02-28 20:49:13 -0500
commit5cda1d27027ea74d8a1b53e43bef697cd4426e9a (patch)
treec37a3eb1512152d38d76976a8cea7f0965c1e782 /tests
parentf2b513c9e8416855a92e66928c2e22a8fc639273 (diff)
[1.6.x] Fixed #21643 -- repeated execution of qs with F() + timedelta
Thanks Tim Graham for review and Tai Lee for the additional test to prove this was a regression in 1.6. Backport of 7f2485b4d1 and 8137215973 from master
Diffstat (limited to 'tests')
-rw-r--r--tests/expressions_regress/tests.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/expressions_regress/tests.py b/tests/expressions_regress/tests.py
index ddb2c83b4f..a9737f433d 100644
--- a/tests/expressions_regress/tests.py
+++ b/tests/expressions_regress/tests.py
@@ -259,6 +259,20 @@ class FTimeDeltaTests(TestCase):
self.days_long.append(e4.completed-e4.assigned)
self.expnames = [e.name for e in Experiment.objects.all()]
+ def test_multiple_query_compilation(self):
+ # Ticket #21643
+ queryset = Experiment.objects.filter(end__lt=F('start') + datetime.timedelta(hours=1))
+ q1 = str(queryset.query)
+ q2 = str(queryset.query)
+ self.assertEqual(q1, q2)
+
+ def test_query_clone(self):
+ # Ticket #21643
+ qs = Experiment.objects.filter(end__lt=F('start') + datetime.timedelta(hours=1))
+ qs2 = qs.all()
+ list(qs)
+ list(qs2)
+
def test_delta_add(self):
for i in range(len(self.deltas)):
delta = self.deltas[i]