From e2fe0429abb1fafee7643b9361b808f982ddaf98 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Tue, 2 Nov 2021 15:34:08 +0100 Subject: [4.0.x] Fixed #33234 -- Fixed autodetector crash for proxy models inheriting from non-model class. Regression in aa4acc164d1247c0de515c959f7b09648b57dc42. Thanks Kevin Marsh for the report. Backport of dab48b7482295956973879d15bfd4d3bb0718772 from main --- tests/migrations/test_autodetector.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests') diff --git a/tests/migrations/test_autodetector.py b/tests/migrations/test_autodetector.py index 67cc39dec7..fb42a8a455 100644 --- a/tests/migrations/test_autodetector.py +++ b/tests/migrations/test_autodetector.py @@ -1779,6 +1779,29 @@ class AutodetectorTests(TestCase): self.assertOperationAttributes(changes, "testapp", 0, 0, name="AuthorProxy") self.assertOperationAttributes(changes, "testapp", 0, 1, name="AuthorProxy", options={}) + def test_proxy_non_model_parent(self): + class Mixin: + pass + + author_proxy_non_model_parent = ModelState( + 'testapp', + 'AuthorProxy', + [], + {'proxy': True}, + (Mixin, 'testapp.author'), + ) + changes = self.get_changes( + [self.author_empty], + [self.author_empty, author_proxy_non_model_parent], + ) + self.assertNumberMigrations(changes, 'testapp', 1) + self.assertOperationTypes(changes, 'testapp', 0, ['CreateModel']) + self.assertOperationAttributes( + changes, 'testapp', 0, 0, name='AuthorProxy', + options={'proxy': True, 'indexes': [], 'constraints': []}, + bases=(Mixin, 'testapp.author'), + ) + def test_proxy_custom_pk(self): """ #23415 - The autodetector must correctly deal with custom FK on proxy -- cgit v1.3