diff options
| author | Marc Tamlyn <marc.tamlyn@gmail.com> | 2013-03-20 10:47:56 +0000 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2013-03-22 17:45:41 +0100 |
| commit | dd897e4eeb20cab9ac708c46f34c5f09758205c8 (patch) | |
| tree | e52fa69194af909b0744d97dc6eb7e6e246887e5 /tests | |
| parent | 7206330c15b6d37dba46e311fd5135b25cf9f9e9 (diff) | |
[1.5.x] Fixed #20094 - Be more careful when checking for Iterator
Python 2.6 has some different behaviour when checking
isinstance(foo, collections.Iterator).
Backport of 829dc3c5 from master.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/utils/itercompat.py | 11 | ||||
| -rw-r--r-- | tests/regressiontests/utils/models.py | 14 | ||||
| -rw-r--r-- | tests/regressiontests/utils/tests.py | 1 |
3 files changed, 25 insertions, 1 deletions
diff --git a/tests/regressiontests/utils/itercompat.py b/tests/regressiontests/utils/itercompat.py new file mode 100644 index 0000000000..02d3463370 --- /dev/null +++ b/tests/regressiontests/utils/itercompat.py @@ -0,0 +1,11 @@ +from django.test import TestCase + +from .models import Category, Thing + + +class TestIsIterator(TestCase): + def test_regression(self): + """This failed on Django 1.5/Py2.6 because category has a next method.""" + category = Category.objects.create(name='category') + Thing.objects.create(category=category) + Thing.objects.filter(category=category) diff --git a/tests/regressiontests/utils/models.py b/tests/regressiontests/utils/models.py index 97a72bab14..de8f9e3803 100644 --- a/tests/regressiontests/utils/models.py +++ b/tests/regressiontests/utils/models.py @@ -1 +1,13 @@ -# Test runner needs a models.py file. +from django.db import models + + +class Category(models.Model): + name = models.CharField(max_length=100) + + def next(self): + return self + + +class Thing(models.Model): + name = models.CharField(max_length=100) + category = models.ForeignKey(Category) diff --git a/tests/regressiontests/utils/tests.py b/tests/regressiontests/utils/tests.py index 11dd7c320e..2847a7a83a 100644 --- a/tests/regressiontests/utils/tests.py +++ b/tests/regressiontests/utils/tests.py @@ -19,6 +19,7 @@ from .functional import FunctionalTestCase from .html import TestUtilsHtml from .http import TestUtilsHttp, ETagProcessingTests, HttpDateProcessingTests from .ipv6 import TestUtilsIPv6 +from .itercompat import TestIsIterator from .jslex import JsToCForGettextTest, JsTokensTest from .module_loading import CustomLoader, DefaultLoader, EggLoader from .numberformat import TestNumberFormat |
