diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2015-10-05 22:29:23 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-10-06 19:22:37 -0400 |
| commit | 914167abf19d16ac97c0f1f6ae1b08cb377c8f3a (patch) | |
| tree | cc720232238272a7696bd23d4aaf8f0e40af90d8 /tests/invalid_models_tests/test_relative_fields.py | |
| parent | 3f766d44c5ea000ecf47829ca565b1921dab2ac1 (diff) | |
Fixed #25503 -- Fixed system check crash on ForeignKey to abstract model.
Diffstat (limited to 'tests/invalid_models_tests/test_relative_fields.py')
| -rw-r--r-- | tests/invalid_models_tests/test_relative_fields.py | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/tests/invalid_models_tests/test_relative_fields.py b/tests/invalid_models_tests/test_relative_fields.py index 04dca8b35e..ad1c25da52 100644 --- a/tests/invalid_models_tests/test_relative_fields.py +++ b/tests/invalid_models_tests/test_relative_fields.py @@ -386,25 +386,27 @@ class RelativeFieldTests(IsolatedModelsTestCase): self.assertEqual(errors, expected) def test_foreign_key_to_abstract_model(self): - class Model(models.Model): - foreign_key = models.ForeignKey('AbstractModel', models.CASCADE) - class AbstractModel(models.Model): class Meta: abstract = True - field = Model._meta.get_field('foreign_key') - errors = field.check() - expected = [ - Error( - "Field defines a relation with model 'AbstractModel', " - "which is either not installed, or is abstract.", - hint=None, - obj=field, - id='fields.E300', - ), + class Model(models.Model): + rel_string_foreign_key = models.ForeignKey('AbstractModel', models.CASCADE) + rel_class_foreign_key = models.ForeignKey(AbstractModel, models.CASCADE) + + fields = [ + Model._meta.get_field('rel_string_foreign_key'), + Model._meta.get_field('rel_class_foreign_key'), ] - self.assertEqual(errors, expected) + expected_error = Error( + "Field defines a relation with model 'AbstractModel', " + "which is either not installed, or is abstract.", + id='fields.E300', + ) + for field in fields: + expected_error.obj = field + errors = field.check() + self.assertEqual(errors, [expected_error]) def test_m2m_to_abstract_model(self): class AbstractModel(models.Model): @@ -412,20 +414,22 @@ class RelativeFieldTests(IsolatedModelsTestCase): abstract = True class Model(models.Model): - m2m = models.ManyToManyField('AbstractModel') + rel_string_m2m = models.ManyToManyField('AbstractModel') + rel_class_m2m = models.ManyToManyField(AbstractModel) - field = Model._meta.get_field('m2m') - errors = field.check(from_model=Model) - expected = [ - Error( - "Field defines a relation with model 'AbstractModel', " - "which is either not installed, or is abstract.", - hint=None, - obj=field, - id='fields.E300', - ), + fields = [ + Model._meta.get_field('rel_string_m2m'), + Model._meta.get_field('rel_class_m2m'), ] - self.assertEqual(errors, expected) + expected_error = Error( + "Field defines a relation with model 'AbstractModel', " + "which is either not installed, or is abstract.", + id='fields.E300', + ) + for field in fields: + expected_error.obj = field + errors = field.check(from_model=Model) + self.assertEqual(errors, [expected_error]) def test_unique_m2m(self): class Person(models.Model): |
