diff options
| author | Claude Paroz <claude@2xlibre.net> | 2018-05-28 16:18:53 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-06-03 22:19:04 -0400 |
| commit | bec651a427fc032d9115d30c8c5d0e702d754f6c (patch) | |
| tree | 671d4b8b765b48e172301644e28031e2e0467c70 /tests | |
| parent | 747ff7a30b79e12d344169200de24f88a22ddee9 (diff) | |
Fixed #10827 -- Ensured ContentTypes are created before permission creation.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/auth_tests/test_management.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/auth_tests/test_management.py b/tests/auth_tests/test_management.py index 4f29740982..73cf66699b 100644 --- a/tests/auth_tests/test_management.py +++ b/tests/auth_tests/test_management.py @@ -838,3 +838,15 @@ class CreatePermissionsTests(TestCase): state = migrations.state.ProjectState(real_apps=['contenttypes']) with self.assertNumQueries(0): create_permissions(self.app_config, verbosity=0, apps=state.apps) + + def test_create_permissions_checks_contenttypes_created(self): + """ + `post_migrate` handler ordering isn't guaranteed. Simulate a case + where create_permissions() is called before create_contenttypes(). + """ + # Warm the manager cache. + ContentType.objects.get_for_model(Group) + # Apply a deletion as if e.g. a database 'flush' had been executed. + ContentType.objects.filter(app_label='auth', model='group').delete() + # This fails with a foreign key constraint without the fix. + create_permissions(apps.get_app_config('auth'), interactive=False, verbosity=0) |
