diff options
| author | gowthamk63 <gowthamk63@gmail.com> | 2020-03-11 15:14:50 -0400 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-03-19 11:48:10 +0100 |
| commit | 142ab6846ac09d6d401e26fc8b6b988a583ac0f5 (patch) | |
| tree | d12a79a5db7e68efc7449ce85e3339c20f60f2af /tests/contenttypes_tests | |
| parent | 13993e0f38d5f272236887ef22b491eb1b20dce9 (diff) | |
Fixed #31123 -- Added --include-stale-apps option to the remove_stale_contenttypes management command.
Co-Authored-By: Javier Buzzi <buzzi.javier@gmail.com>
Diffstat (limited to 'tests/contenttypes_tests')
| -rw-r--r-- | tests/contenttypes_tests/test_management.py | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/tests/contenttypes_tests/test_management.py b/tests/contenttypes_tests/test_management.py index 3e375518c9..65842aa09e 100644 --- a/tests/contenttypes_tests/test_management.py +++ b/tests/contenttypes_tests/test_management.py @@ -10,10 +10,15 @@ from django.test.utils import captured_stdout from .models import ModelWithNullFKToSite, Post -@modify_settings(INSTALLED_APPS={'append': ['no_models']}) +@modify_settings(INSTALLED_APPS={'append': ['empty_models', 'no_models']}) class RemoveStaleContentTypesTests(TestCase): # Speed up tests by avoiding retrieving ContentTypes for all test apps. - available_apps = ['contenttypes_tests', 'no_models', 'django.contrib.contenttypes'] + available_apps = [ + 'contenttypes_tests', + 'empty_models', + 'no_models', + 'django.contrib.contenttypes', + ] def setUp(self): self.before_count = ContentType.objects.count() @@ -65,9 +70,34 @@ class RemoveStaleContentTypesTests(TestCase): contenttypes_management.create_contenttypes(self.app_config, interactive=False, verbosity=0, apps=apps) self.assertEqual(ContentType.objects.count(), self.before_count + 1) - def test_contenttypes_removed_in_apps_without_models(self): - ContentType.objects.create(app_label='no_models', model='Fake') + @modify_settings(INSTALLED_APPS={'remove': ['empty_models']}) + def test_contenttypes_removed_in_installed_apps_without_models(self): + ContentType.objects.create(app_label='empty_models', model='Fake 1') + ContentType.objects.create(app_label='no_models', model='Fake 2') with mock.patch('builtins.input', return_value='yes'), captured_stdout() as stdout: call_command('remove_stale_contenttypes', verbosity=2) - self.assertIn("Deleting stale content type 'no_models | Fake'", stdout.getvalue()) + self.assertNotIn( + "Deleting stale content type 'empty_models | Fake 1'", + stdout.getvalue(), + ) + self.assertIn( + "Deleting stale content type 'no_models | Fake 2'", + stdout.getvalue(), + ) + self.assertEqual(ContentType.objects.count(), self.before_count + 1) + + @modify_settings(INSTALLED_APPS={'remove': ['empty_models']}) + def test_contenttypes_removed_for_apps_not_in_installed_apps(self): + ContentType.objects.create(app_label='empty_models', model='Fake 1') + ContentType.objects.create(app_label='no_models', model='Fake 2') + with mock.patch('builtins.input', return_value='yes'), captured_stdout() as stdout: + call_command('remove_stale_contenttypes', include_stale_apps=True, verbosity=2) + self.assertIn( + "Deleting stale content type 'empty_models | Fake 1'", + stdout.getvalue(), + ) + self.assertIn( + "Deleting stale content type 'no_models | Fake 2'", + stdout.getvalue(), + ) self.assertEqual(ContentType.objects.count(), self.before_count) |
