diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2012-10-02 22:52:45 +0800 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2012-10-02 22:52:45 +0800 |
| commit | 3b6f980bedbbf091fe29bececa2b262d2084ce4d (patch) | |
| tree | 79878a20a702edb034cd732c850ff5546059edf6 /tests | |
| parent | 5f8b97f9fb058e5e02f1f99423fc3b0020ecdeb0 (diff) | |
Fixed #19049 -- Ensure that swapped models aren't included in reverse field caches.
Thanks to Ivan Virabyan for the report.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/modeltests/invalid_models/invalid_models/models.py | 15 | ||||
| -rw-r--r-- | tests/modeltests/invalid_models/tests.py | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/tests/modeltests/invalid_models/invalid_models/models.py b/tests/modeltests/invalid_models/invalid_models/models.py index 3f95d314e3..ccb6396352 100644 --- a/tests/modeltests/invalid_models/invalid_models/models.py +++ b/tests/modeltests/invalid_models/invalid_models/models.py @@ -303,13 +303,28 @@ class SwappedModel(models.Model): References to this model *should* raise a validation error. Requires TEST_SWAPPED_MODEL to be defined in the test environment; this is guaranteed by the test runner using @override_settings. + + The foreign keys and m2m relations on this model *shouldn't* + install related accessors, so there shouldn't be clashes with + the equivalent names on the replacement. """ name = models.CharField(max_length=100) + foreign = models.ForeignKey(Target, related_name='swappable_fk_set') + m2m = models.ManyToManyField(Target, related_name='swappable_m2m_set') + class Meta: swappable = 'TEST_SWAPPED_MODEL' +class ReplacementModel(models.Model): + """A replacement model for swapping purposes.""" + name = models.CharField(max_length=100) + + foreign = models.ForeignKey(Target, related_name='swappable_fk_set') + m2m = models.ManyToManyField(Target, related_name='swappable_m2m_set') + + class BadSwappableValue(models.Model): """A model that can be swapped out; during testing, the swappable value is not of the format app.model diff --git a/tests/modeltests/invalid_models/tests.py b/tests/modeltests/invalid_models/tests.py index 6050a20880..5f6224c45d 100644 --- a/tests/modeltests/invalid_models/tests.py +++ b/tests/modeltests/invalid_models/tests.py @@ -37,7 +37,7 @@ class InvalidModelTestCase(unittest.TestCase): # easier to set this up as an override than to require every developer # to specify a value in their test settings. @override_settings( - TEST_SWAPPED_MODEL='invalid_models.Target', + TEST_SWAPPED_MODEL='invalid_models.ReplacementModel', TEST_SWAPPED_MODEL_BAD_VALUE='not-a-model', TEST_SWAPPED_MODEL_BAD_MODEL='not_an_app.Target', ) |
