summaryrefslogtreecommitdiff
path: root/tests/auth_tests
diff options
context:
space:
mode:
authorChristophe Henry <contact2@c-henry.fr>2021-10-07 12:00:47 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-10-07 12:37:16 +0200
commitdf2d2bc95c451c6366fd522a5a1e6ed84f459f31 (patch)
tree1bc63bab06efb8b22aa372e8e7395c162d849ff7 /tests/auth_tests
parent9be36f8044c3bdfe5d1819d4b3b62bee64a039e3 (diff)
downloaddjango-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.py19
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',