summaryrefslogtreecommitdiff
path: root/tests/auth_tests/test_management.py
diff options
context:
space:
mode:
authorYan Mitrofanov <mmxlviii@mail.ru>2020-08-13 13:27:00 +0300
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-08-14 11:08:20 +0200
commitb88f98738fbbdf119f4ff001e4eccf72a77d9518 (patch)
tree2eba1db3a30b63b422a5c6a24d0f571267a57592 /tests/auth_tests/test_management.py
parent552bb82928a8dbc0531fdffad2131ac34fbbc1df (diff)
Fixed #31878 -- Made createsuperuser respect --database option in default usernames.
Diffstat (limited to 'tests/auth_tests/test_management.py')
-rw-r--r--tests/auth_tests/test_management.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auth_tests/test_management.py b/tests/auth_tests/test_management.py
index 6a8e623129..517c0697da 100644
--- a/tests/auth_tests/test_management.py
+++ b/tests/auth_tests/test_management.py
@@ -102,6 +102,7 @@ class MockInputTests(TestCase):
class GetDefaultUsernameTestCase(TestCase):
+ databases = {'default', 'other'}
def setUp(self):
self.old_get_system_username = management.get_system_username
@@ -128,6 +129,15 @@ class GetDefaultUsernameTestCase(TestCase):
management.get_system_username = lambda: 'J\xfalia'
self.assertEqual(management.get_default_username(), 'julia')
+ def test_with_database(self):
+ User.objects.create(username='joe')
+ management.get_system_username = lambda: 'joe'
+ self.assertEqual(management.get_default_username(), '')
+ self.assertEqual(management.get_default_username(database='other'), 'joe')
+
+ User.objects.using('other').create(username='joe')
+ self.assertEqual(management.get_default_username(database='other'), '')
+
@override_settings(AUTH_PASSWORD_VALIDATORS=[
{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator'},
@@ -1047,6 +1057,36 @@ class MultiDBCreatesuperuserTestCase(TestCase):
user = User.objects.using('other').get(username='joe')
self.assertEqual(user.email, 'joe@somewhere.org')
+ def test_createsuperuser_command_suggested_username_with_database_option(self):
+ default_username = get_default_username(database='other')
+ qs = User.objects.using('other')
+
+ @mock_inputs({'password': 'nopasswd', 'username': '', 'email': ''})
+ def test_other_create_with_suggested_username(self):
+ call_command(
+ 'createsuperuser',
+ interactive=True,
+ stdin=MockTTY(),
+ verbosity=0,
+ database='other',
+ )
+ self.assertIs(qs.filter(username=default_username).exists(), True)
+
+ test_other_create_with_suggested_username(self)
+
+ @mock_inputs({'password': 'nopasswd', 'Username: ': 'other', 'email': ''})
+ def test_other_no_suggestion(self):
+ call_command(
+ 'createsuperuser',
+ interactive=True,
+ stdin=MockTTY(),
+ verbosity=0,
+ database='other',
+ )
+ self.assertIs(qs.filter(username='other').exists(), True)
+
+ test_other_no_suggestion(self)
+
class CreatePermissionsTests(TestCase):