diff options
| author | Alex Gaynor <alex.gaynor@gmail.com> | 2010-11-02 18:41:23 +0000 |
|---|---|---|
| committer | Alex Gaynor <alex.gaynor@gmail.com> | 2010-11-02 18:41:23 +0000 |
| commit | 6f30440b7291deac7e7de0c0e422f2bcc89a3c6d (patch) | |
| tree | 4dece1f17e2e9d233d92a7c9c8a788088e1ce80c /tests | |
| parent | a25718c157938e0bdbba7c9e9ee021ea654b1577 (diff) | |
[1.2.X] Fixed #10728 -- corrected subclassing of Fields who use the SubfieldBase metaclass. Thanks to G2P and George Sakkis for their work on the patch. Backport of [14443].
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14444 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/modeltests/field_subclassing/fields.py | 3 | ||||
| -rw-r--r-- | tests/modeltests/field_subclassing/models.py | 5 | ||||
| -rw-r--r-- | tests/modeltests/field_subclassing/tests.py | 8 |
3 files changed, 14 insertions, 2 deletions
diff --git a/tests/modeltests/field_subclassing/fields.py b/tests/modeltests/field_subclassing/fields.py index 1f9bdf5e0a..8675b31be0 100644 --- a/tests/modeltests/field_subclassing/fields.py +++ b/tests/modeltests/field_subclassing/fields.py @@ -50,6 +50,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") |
