summaryrefslogtreecommitdiff
path: root/tests/regressiontests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests')
-rw-r--r--tests/regressiontests/expressions_regress/tests.py37
-rw-r--r--tests/regressiontests/extra_regress/tests.py9
-rw-r--r--tests/regressiontests/m2m_regress/tests.py2
-rw-r--r--tests/regressiontests/m2m_through_regress/tests.py9
-rw-r--r--tests/regressiontests/managers_regress/tests.py3
-rw-r--r--tests/regressiontests/model_regress/tests.py9
-rw-r--r--tests/regressiontests/queries/tests.py37
-rw-r--r--tests/regressiontests/test_utils/models.py6
-rw-r--r--tests/regressiontests/test_utils/tests.py40
9 files changed, 110 insertions, 42 deletions
diff --git a/tests/regressiontests/expressions_regress/tests.py b/tests/regressiontests/expressions_regress/tests.py
index 508a497151..ddb2c83b4f 100644
--- a/tests/regressiontests/expressions_regress/tests.py
+++ b/tests/regressiontests/expressions_regress/tests.py
@@ -26,12 +26,13 @@ class ExpressionsRegressTests(TestCase):
same object.
"""
self.assertQuerysetEqual(
- Number.objects.all(),
- [
- '<Number: -1, -1.000>',
- '<Number: 42, 42.000>',
- '<Number: 1337, 1337.000>'
- ]
+ Number.objects.all(),
+ [
+ '<Number: -1, -1.000>',
+ '<Number: 42, 42.000>',
+ '<Number: 1337, 1337.000>'
+ ],
+ ordered=False
)
def test_increment_value(self):
@@ -44,12 +45,13 @@ class ExpressionsRegressTests(TestCase):
2)
self.assertQuerysetEqual(
- Number.objects.all(),
- [
- '<Number: -1, -1.000>',
- '<Number: 43, 42.000>',
- '<Number: 1338, 1337.000>'
- ]
+ Number.objects.all(),
+ [
+ '<Number: -1, -1.000>',
+ '<Number: 43, 42.000>',
+ '<Number: 1338, 1337.000>'
+ ],
+ ordered=False
)
def test_filter_not_equals_other_field(self):
@@ -62,11 +64,12 @@ class ExpressionsRegressTests(TestCase):
.update(integer=F('integer') + 1),
2)
self.assertQuerysetEqual(
- Number.objects.exclude(float=F('integer')),
- [
- '<Number: 43, 42.000>',
- '<Number: 1338, 1337.000>'
- ]
+ Number.objects.exclude(float=F('integer')),
+ [
+ '<Number: 43, 42.000>',
+ '<Number: 1338, 1337.000>'
+ ],
+ ordered=False
)
def test_complex_expressions(self):
diff --git a/tests/regressiontests/extra_regress/tests.py b/tests/regressiontests/extra_regress/tests.py
index f591900afe..1bc6789edd 100644
--- a/tests/regressiontests/extra_regress/tests.py
+++ b/tests/regressiontests/extra_regress/tests.py
@@ -58,13 +58,15 @@ class ExtraRegressTests(TestCase):
('First Revision', 'First Revision'),
('Second Revision', 'First Revision'),
],
- transform=lambda r: (r.title, r.base.title)
+ transform=lambda r: (r.title, r.base.title),
+ ordered=False
)
# Following queryset should return the most recent revision:
self.assertQuerysetEqual(qs & qs2,
[('Second Revision', 'First Revision')],
- transform=lambda r: (r.title, r.base.title)
+ transform=lambda r: (r.title, r.base.title),
+ ordered=False
)
def test_extra_stay_tied(self):
@@ -342,5 +344,6 @@ class ExtraRegressTests(TestCase):
TestObject.objects.extra(
where=["first = 'a' OR second = 'a'", "third = 'a'"],
),
- ['<TestObject: TestObject: a,a,a>', '<TestObject: TestObject: b,a,a>']
+ ['<TestObject: TestObject: a,a,a>', '<TestObject: TestObject: b,a,a>'],
+ ordered=False
)
diff --git a/tests/regressiontests/m2m_regress/tests.py b/tests/regressiontests/m2m_regress/tests.py
index c39d883de4..3dc1d2417c 100644
--- a/tests/regressiontests/m2m_regress/tests.py
+++ b/tests/regressiontests/m2m_regress/tests.py
@@ -74,7 +74,7 @@ class M2MRegressionTests(TestCase):
c1.tags = [t1, t2]
c1 = TagCollection.objects.get(name='c1')
- self.assertQuerysetEqual(c1.tags.all(), ["<Tag: t1>", "<Tag: t2>"])
+ self.assertQuerysetEqual(c1.tags.all(), ["<Tag: t1>", "<Tag: t2>"], ordered=False)
self.assertQuerysetEqual(t1.tag_collections.all(), ["<TagCollection: c1>"])
def test_manager_class_caching(self):
diff --git a/tests/regressiontests/m2m_through_regress/tests.py b/tests/regressiontests/m2m_through_regress/tests.py
index eba956b3ba..17a4525442 100644
--- a/tests/regressiontests/m2m_through_regress/tests.py
+++ b/tests/regressiontests/m2m_through_regress/tests.py
@@ -28,7 +28,8 @@ class M2MThroughTestCase(TestCase):
bob.group_set.all(), [
"<Group: Rock>",
"<Group: Roll>",
- ]
+ ],
+ ordered=False
)
self.assertQuerysetEqual(
@@ -51,7 +52,8 @@ class M2MThroughTestCase(TestCase):
frank.group_set.all(), [
"<Group: Rock>",
"<Group: Roll>",
- ]
+ ],
+ ordered=False
)
self.assertQuerysetEqual(
@@ -190,7 +192,8 @@ class ToFieldThroughTests(TestCase):
self.driver.car_set._add_items('driver', 'car', car2)
self.assertQuerysetEqual(
self.driver.car_set.all(),
- ["<Car: Toyota>", "<Car: Honda>"]
+ ["<Car: Toyota>", "<Car: Honda>"],
+ ordered=False
)
def test_add_null_reverse(self):
diff --git a/tests/regressiontests/managers_regress/tests.py b/tests/regressiontests/managers_regress/tests.py
index f3721a4c01..45059be4e5 100644
--- a/tests/regressiontests/managers_regress/tests.py
+++ b/tests/regressiontests/managers_regress/tests.py
@@ -61,7 +61,8 @@ class ManagersRegressionTests(TestCase):
self.assertQuerysetEqual(Child4.manager1.all(), [
"<Child4: d1>",
"<Child4: f1>"
- ]
+ ],
+ ordered=False
)
self.assertQuerysetEqual(Child5._default_manager.all(), ["<Child5: fred>"])
self.assertQuerysetEqual(Child6._default_manager.all(), ["<Child6: f1>"])
diff --git a/tests/regressiontests/model_regress/tests.py b/tests/regressiontests/model_regress/tests.py
index 6a45a83052..c90fe98658 100644
--- a/tests/regressiontests/model_regress/tests.py
+++ b/tests/regressiontests/model_regress/tests.py
@@ -71,7 +71,8 @@ class ModelTests(TestCase):
datetime.date(1999, 12, 31),
datetime.date(1998, 12, 31),
],
- attrgetter("when")
+ attrgetter("when"),
+ ordered=False
)
self.assertQuerysetEqual(
Party.objects.filter(when__year=1998), [
@@ -85,14 +86,16 @@ class ModelTests(TestCase):
datetime.date(1999, 12, 31),
datetime.date(1998, 12, 31),
],
- attrgetter("when")
+ attrgetter("when"),
+ ordered=False
)
self.assertQuerysetEqual(
Party.objects.filter(when__month="12"), [
datetime.date(1999, 12, 31),
datetime.date(1998, 12, 31),
],
- attrgetter("when")
+ attrgetter("when"),
+ ordered=False
)
self.assertQuerysetEqual(
Party.objects.filter(when__year="1998"), [
diff --git a/tests/regressiontests/queries/tests.py b/tests/regressiontests/queries/tests.py
index eea5fead55..e4009cdf20 100644
--- a/tests/regressiontests/queries/tests.py
+++ b/tests/regressiontests/queries/tests.py
@@ -841,11 +841,14 @@ class Queries1Tests(BaseQuerysetTest):
"""
original_ordering = Tag._meta.ordering
Tag._meta.ordering = None
- self.assertQuerysetEqual(
- Tag.objects.all(),
- ['<Tag: t1>', '<Tag: t2>', '<Tag: t3>', '<Tag: t4>', '<Tag: t5>'],
- )
- Tag._meta.ordering = original_ordering
+ try:
+ self.assertQuerysetEqual(
+ Tag.objects.all(),
+ ['<Tag: t1>', '<Tag: t2>', '<Tag: t3>', '<Tag: t4>', '<Tag: t5>'],
+ ordered=False
+ )
+ finally:
+ Tag._meta.ordering = original_ordering
def test_exclude(self):
self.assertQuerysetEqual(
@@ -925,15 +928,18 @@ class Queries2Tests(TestCase):
self.assertQuerysetEqual(Number.objects.filter(num__gt=12.1), [])
self.assertQuerysetEqual(
Number.objects.filter(num__lt=12),
- ['<Number: 4>', '<Number: 8>']
+ ['<Number: 4>', '<Number: 8>'],
+ ordered=False
)
self.assertQuerysetEqual(
Number.objects.filter(num__lt=12.0),
- ['<Number: 4>', '<Number: 8>']
+ ['<Number: 4>', '<Number: 8>'],
+ ordered=False
)
self.assertQuerysetEqual(
Number.objects.filter(num__lt=12.1),
- ['<Number: 4>', '<Number: 8>', '<Number: 12>']
+ ['<Number: 4>', '<Number: 8>', '<Number: 12>'],
+ ordered=False
)
self.assertQuerysetEqual(
Number.objects.filter(num__gte=11.9),
@@ -951,23 +957,28 @@ class Queries2Tests(TestCase):
self.assertQuerysetEqual(Number.objects.filter(num__gte=12.9), [])
self.assertQuerysetEqual(
Number.objects.filter(num__lte=11.9),
- ['<Number: 4>', '<Number: 8>']
+ ['<Number: 4>', '<Number: 8>'],
+ ordered=False
)
self.assertQuerysetEqual(
Number.objects.filter(num__lte=12),
- ['<Number: 4>', '<Number: 8>', '<Number: 12>']
+ ['<Number: 4>', '<Number: 8>', '<Number: 12>'],
+ ordered=False
)
self.assertQuerysetEqual(
Number.objects.filter(num__lte=12.0),
- ['<Number: 4>', '<Number: 8>', '<Number: 12>']
+ ['<Number: 4>', '<Number: 8>', '<Number: 12>'],
+ ordered=False
)
self.assertQuerysetEqual(
Number.objects.filter(num__lte=12.1),
- ['<Number: 4>', '<Number: 8>', '<Number: 12>']
+ ['<Number: 4>', '<Number: 8>', '<Number: 12>'],
+ ordered=False
)
self.assertQuerysetEqual(
Number.objects.filter(num__lte=12.9),
- ['<Number: 4>', '<Number: 8>', '<Number: 12>']
+ ['<Number: 4>', '<Number: 8>', '<Number: 12>'],
+ ordered=False
)
def test_ticket7411(self):
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'