summaryrefslogtreecommitdiff
path: root/tests/regressiontests/forms
diff options
context:
space:
mode:
authorJannis Leidel <jannis@leidel.info>2011-08-12 14:15:08 +0000
committerJannis Leidel <jannis@leidel.info>2011-08-12 14:15:08 +0000
commit1d485cf14ffa58dbeb130db2d50aa147556e0244 (patch)
treee883e8d12cceb1b7303fbbefb4d3c0f41ac6c4c8 /tests/regressiontests/forms
parent386b12c1c668dd54d24704ef974e17b38abb825d (diff)
Fixed #10405 -- Raise a more useful error if the formfield of a related model field can't be created yet because the related model isn't loaded yet. Thanks ojii and charstring.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16604 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/forms')
-rw-r--r--tests/regressiontests/forms/tests/models.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/regressiontests/forms/tests/models.py b/tests/regressiontests/forms/tests/models.py
index 5e1bd82640..60fc4e83ba 100644
--- a/tests/regressiontests/forms/tests/models.py
+++ b/tests/regressiontests/forms/tests/models.py
@@ -1,7 +1,9 @@
# -*- coding: utf-8 -*-
import datetime
from django.core.files.uploadedfile import SimpleUploadedFile
+from django.db import models
from django.forms import Form, ModelForm, FileField, ModelChoiceField
+from django.forms.models import ModelFormMetaclass
from django.test import TestCase
from regressiontests.forms.models import (ChoiceOptionModel, ChoiceFieldModel,
FileModel, Group, BoundaryModel, Defaults)
@@ -160,3 +162,34 @@ class FormsModelTestCase(TestCase):
self.assertEqual(obj.name, u'class default value')
self.assertEqual(obj.value, 99)
self.assertEqual(obj.def_date, datetime.date(1999, 3, 2))
+
+class RelatedModelFormTests(TestCase):
+ def test_invalid_loading_order(self):
+ """
+ Test for issue 10405
+ """
+ class A(models.Model):
+ ref = models.ForeignKey("B")
+
+ class Meta:
+ model=A
+
+ self.assertRaises(ValueError, ModelFormMetaclass, 'Form', (ModelForm,), {'Meta': Meta})
+
+ class B(models.Model):
+ pass
+
+ def test_valid_loading_order(self):
+ """
+ Test for issue 10405
+ """
+ class A(models.Model):
+ ref = models.ForeignKey("B")
+
+ class B(models.Model):
+ pass
+
+ class Meta:
+ model=A
+
+ self.assertTrue(issubclass(ModelFormMetaclass('Form', (ModelForm,), {'Meta': Meta}), ModelForm))