summaryrefslogtreecommitdiff
path: root/tests/regressiontests/test_utils
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests/test_utils')
-rw-r--r--tests/regressiontests/test_utils/models.py6
-rw-r--r--tests/regressiontests/test_utils/tests.py40
2 files changed, 45 insertions, 1 deletions
diff --git a/tests/regressiontests/test_utils/models.py b/tests/regressiontests/test_utils/models.py
index 4da7a07bbf..85a1031c02 100644
--- a/tests/regressiontests/test_utils/models.py
+++ b/tests/regressiontests/test_utils/models.py
@@ -1,5 +1,9 @@
from django.db import models
+from django.utils.encoding import python_2_unicode_compatible
-
+@python_2_unicode_compatible
class Person(models.Model):
name = models.CharField(max_length=100)
+
+ def __str__(self):
+ return self.name
diff --git a/tests/regressiontests/test_utils/tests.py b/tests/regressiontests/test_utils/tests.py
index 95913b5aab..d5d49b2104 100644
--- a/tests/regressiontests/test_utils/tests.py
+++ b/tests/regressiontests/test_utils/tests.py
@@ -54,6 +54,46 @@ class AssertNumQueriesTests(TestCase):
self.assertNumQueries(2, test_func)
+class AssertQuerysetEqualTests(TestCase):
+ def setUp(self):
+ self.p1 = Person.objects.create(name='p1')
+ self.p2 = Person.objects.create(name='p2')
+
+ def test_ordered(self):
+ self.assertQuerysetEqual(
+ Person.objects.all().order_by('name'),
+ [repr(self.p1), repr(self.p2)]
+ )
+
+ def test_unordered(self):
+ self.assertQuerysetEqual(
+ Person.objects.all().order_by('name'),
+ [repr(self.p2), repr(self.p1)],
+ ordered=False
+ )
+
+ def test_transform(self):
+ self.assertQuerysetEqual(
+ Person.objects.all().order_by('name'),
+ [self.p1.pk, self.p2.pk],
+ transform=lambda x: x.pk
+ )
+
+ def test_undefined_order(self):
+ # Using an unordered queryset with more than one ordered value
+ # is an error.
+ with self.assertRaises(ValueError):
+ self.assertQuerysetEqual(
+ Person.objects.all(),
+ [repr(self.p1), repr(self.p2)]
+ )
+ # No error for one value.
+ self.assertQuerysetEqual(
+ Person.objects.filter(name='p1'),
+ [repr(self.p1)]
+ )
+
+
class AssertNumQueriesContextManagerTests(TestCase):
urls = 'regressiontests.test_utils.urls'