summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRamiro Morales <cramm0@gmail.com>2012-03-10 17:36:41 +0000
committerRamiro Morales <cramm0@gmail.com>2012-03-10 17:36:41 +0000
commit4cd9b4bb5081338176e66dae14115130d50831a9 (patch)
treecf5f6bcfddb35b944e1c153702856135da77a307 /tests
parentc4527b1df743c43983e9912c81b73bc0b02fe1b9 (diff)
Fixed #17327 (again) -- Moved createsuperuser tests added in r17665.
In their new location they won't cause multi-db-related errors when users run contrib.auh tests together with their application tests. Thanks brianriley for the patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17676 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/createsuperuser/__init__.py0
-rw-r--r--tests/regressiontests/createsuperuser/models.py0
-rw-r--r--tests/regressiontests/createsuperuser/tests.py57
3 files changed, 57 insertions, 0 deletions
diff --git a/tests/regressiontests/createsuperuser/__init__.py b/tests/regressiontests/createsuperuser/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/regressiontests/createsuperuser/__init__.py
diff --git a/tests/regressiontests/createsuperuser/models.py b/tests/regressiontests/createsuperuser/models.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/regressiontests/createsuperuser/models.py
diff --git a/tests/regressiontests/createsuperuser/tests.py b/tests/regressiontests/createsuperuser/tests.py
new file mode 100644
index 0000000000..4fdb5923ab
--- /dev/null
+++ b/tests/regressiontests/createsuperuser/tests.py
@@ -0,0 +1,57 @@
+from StringIO import StringIO
+
+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
+
+
+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.assertEquals(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()
+