summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2010-11-02 18:40:53 +0000
committerAlex Gaynor <alex.gaynor@gmail.com>2010-11-02 18:40:53 +0000
commit222c73261650201f5ce99e8dd4b1ce0d30a69eb4 (patch)
tree24c2a30a0bc3b8361de3052b9fd078700a21f2ca /tests
parent352deb09159b7a6c9d52077a378bf3faa071bce4 (diff)
Fixed #10728 -- corrected subclassing of Fields who use the SubfieldBase metaclass. Thanks to G2P and George Sakkis for their work on the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14443 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/modeltests/field_subclassing/fields.py3
-rw-r--r--tests/modeltests/field_subclassing/models.py5
-rw-r--r--tests/modeltests/field_subclassing/tests.py8
3 files changed, 14 insertions, 2 deletions
diff --git a/tests/modeltests/field_subclassing/fields.py b/tests/modeltests/field_subclassing/fields.py
index f667310c58..ba1eb90823 100644
--- a/tests/modeltests/field_subclassing/fields.py
+++ b/tests/modeltests/field_subclassing/fields.py
@@ -52,6 +52,9 @@ class SmallField(models.Field):
return []
raise TypeError('Invalid lookup type: %r' % lookup_type)
+class SmallerField(SmallField):
+ pass
+
class JSONField(models.TextField):
__metaclass__ = models.SubfieldBase
diff --git a/tests/modeltests/field_subclassing/models.py b/tests/modeltests/field_subclassing/models.py
index 4a55b72961..b0d83365c5 100644
--- a/tests/modeltests/field_subclassing/models.py
+++ b/tests/modeltests/field_subclassing/models.py
@@ -5,7 +5,7 @@ Tests for field subclassing.
from django.db import models
from django.utils.encoding import force_unicode
-from fields import Small, SmallField, JSONField
+from fields import Small, SmallField, SmallerField, JSONField
class MyModel(models.Model):
@@ -15,5 +15,8 @@ class MyModel(models.Model):
def __unicode__(self):
return force_unicode(self.name)
+class OtherModel(models.Model):
+ data = SmallerField()
+
class DataModel(models.Model):
data = JSONField()
diff --git a/tests/modeltests/field_subclassing/tests.py b/tests/modeltests/field_subclassing/tests.py
index ba7148a654..25f51600b9 100644
--- a/tests/modeltests/field_subclassing/tests.py
+++ b/tests/modeltests/field_subclassing/tests.py
@@ -2,7 +2,7 @@ from django.core import serializers
from django.test import TestCase
from fields import Small
-from models import DataModel, MyModel
+from models import DataModel, MyModel, OtherModel
class CustomField(TestCase):
@@ -73,3 +73,9 @@ class CustomField(TestCase):
],
lambda m: str(m.data)
)
+
+ def test_field_subclassing(self):
+ o = OtherModel.objects.create(data=Small("a", "b"))
+ o = OtherModel.objects.get()
+ self.assertEqual(o.data.first, "a")
+ self.assertEqual(o.data.second, "b")