diff options
author | Christophe Henry <contact2@c-henry.fr> | 2021-10-07 12:00:47 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-10-07 12:37:16 +0200 |
commit | df2d2bc95c451c6366fd522a5a1e6ed84f459f31 (patch) | |
tree | 1bc63bab06efb8b22aa372e8e7395c162d849ff7 /tests/auth_tests | |
parent | 9be36f8044c3bdfe5d1819d4b3b62bee64a039e3 (diff) | |
download | django-df2d2bc95c451c6366fd522a5a1e6ed84f459f31.tar.gz |
Fixed #33151 -- Fixed createsuperuser crash for many-to-many required fields in non-interactive mode.
Diffstat (limited to 'tests/auth_tests')
-rw-r--r-- | tests/auth_tests/test_management.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auth_tests/test_management.py b/tests/auth_tests/test_management.py index 6180773211..8a4e23952c 100644 --- a/tests/auth_tests/test_management.py +++ b/tests/auth_tests/test_management.py @@ -994,6 +994,25 @@ class CreatesuperuserManagementCommandTestCase(TestCase): # Environment variables are ignored for non-required fields. self.assertEqual(user.first_name, '') + @override_settings(AUTH_USER_MODEL='auth_tests.CustomUserWithM2m') + def test_environment_variable_m2m_non_interactive(self): + new_io = StringIO() + org_id_1 = Organization.objects.create(name='Organization 1').pk + org_id_2 = Organization.objects.create(name='Organization 2').pk + with mock.patch.dict(os.environ, { + 'DJANGO_SUPERUSER_ORGS': f'{org_id_1},{org_id_2}', + }): + call_command( + 'createsuperuser', + interactive=False, + username='joe', + stdout=new_io, + ) + command_output = new_io.getvalue().strip() + self.assertEqual(command_output, 'Superuser created successfully.') + user = CustomUserWithM2M._default_manager.get(username='joe') + self.assertEqual(user.orgs.count(), 2) + @mock.patch.dict(os.environ, { 'DJANGO_SUPERUSER_USERNAME': 'test_superuser', 'DJANGO_SUPERUSER_EMAIL': 'joe@somewhere.org', |