summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarc Tamlyn <marc.tamlyn@gmail.com>2013-03-20 10:47:56 +0000
committerClaude Paroz <claude@2xlibre.net>2013-03-22 17:45:41 +0100
commitdd897e4eeb20cab9ac708c46f34c5f09758205c8 (patch)
treee52fa69194af909b0744d97dc6eb7e6e246887e5 /tests
parent7206330c15b6d37dba46e311fd5135b25cf9f9e9 (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.py11
-rw-r--r--tests/regressiontests/utils/models.py14
-rw-r--r--tests/regressiontests/utils/tests.py1
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