diff options
Diffstat (limited to 'tests/regressiontests')
| -rw-r--r-- | tests/regressiontests/expressions_regress/tests.py | 37 | ||||
| -rw-r--r-- | tests/regressiontests/extra_regress/tests.py | 9 | ||||
| -rw-r--r-- | tests/regressiontests/m2m_regress/tests.py | 2 | ||||
| -rw-r--r-- | tests/regressiontests/m2m_through_regress/tests.py | 9 | ||||
| -rw-r--r-- | tests/regressiontests/managers_regress/tests.py | 3 | ||||
| -rw-r--r-- | tests/regressiontests/model_regress/tests.py | 9 | ||||
| -rw-r--r-- | tests/regressiontests/queries/tests.py | 37 | ||||
| -rw-r--r-- | tests/regressiontests/test_utils/models.py | 6 | ||||
| -rw-r--r-- | tests/regressiontests/test_utils/tests.py | 40 |
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' |
