summaryrefslogtreecommitdiff
path: root/tests/createsuperuser/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/createsuperuser/tests.py')
-rw-r--r--tests/createsuperuser/tests.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/createsuperuser/tests.py b/tests/createsuperuser/tests.py
new file mode 100644
index 0000000000..7303b1f2e7
--- /dev/null
+++ b/tests/createsuperuser/tests.py
@@ -0,0 +1,56 @@
+from django.contrib.auth import models
+from django.contrib.auth.management.commands import changepassword
+from django.core.management import call_command
+from django.test import TestCase
+from django.utils.six import StringIO
+
+
+class MultiDBChangepasswordManagementCommandTestCase(TestCase):
+ multi_db = True
+
+ def setUp(self):
+ self.user = models.User.objects.db_manager('other').create_user(username='joe', password='qwerty')
+ self.stdout = StringIO()
+
+ def tearDown(self):
+ self.stdout.close()
+
+ def test_that_changepassword_command_with_database_option_uses_given_db(self):
+ """
+ Executing the changepassword management command with a database option
+ should operate on the specified DB
+ """
+ self.assertTrue(self.user.check_password('qwerty'))
+ command = changepassword.Command()
+ command._get_pass = lambda *args: 'not qwerty'
+
+ command.execute("joe", database='other', stdout=self.stdout)
+ command_output = self.stdout.getvalue().strip()
+
+ self.assertEqual(command_output, "Changing password for user 'joe'\nPassword changed successfully for user 'joe'")
+ self.assertTrue(models.User.objects.using('other').get(username="joe").check_password("not qwerty"))
+
+
+class MultiDBCreatesuperuserTestCase(TestCase):
+ multi_db = True
+
+ def test_createsuperuser_command_with_database_option(self):
+ " createsuperuser command should operate on specified DB"
+ new_io = StringIO()
+
+ call_command("createsuperuser",
+ interactive=False,
+ username="joe",
+ email="joe@somewhere.org",
+ database='other',
+ stdout=new_io
+ )
+ command_output = new_io.getvalue().strip()
+
+ self.assertEqual(command_output, 'Superuser created successfully.')
+
+ u = models.User.objects.using('other').get(username="joe")
+ self.assertEqual(u.email, 'joe@somewhere.org')
+
+ new_io.close()
+