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
This commit is contained in:
Ramiro Morales 2012-03-10 17:36:41 +00:00
parent c4527b1df7
commit 4cd9b4bb50
5 changed files with 57 additions and 53 deletions

View File

@ -12,8 +12,6 @@ from django.contrib.auth.tests.remote_user import (RemoteUserTest,
from django.contrib.auth.tests.management import ( from django.contrib.auth.tests.management import (
GetDefaultUsernameTestCase, GetDefaultUsernameTestCase,
ChangepasswordManagementCommandTestCase, ChangepasswordManagementCommandTestCase,
MultiDBChangepasswordManagementCommandTestCase,
MultiDBCreatesuperuserTestCase,
) )
from django.contrib.auth.tests.models import (ProfileTestCase, NaturalKeysTestCase, from django.contrib.auth.tests.models import (ProfileTestCase, NaturalKeysTestCase,
LoadDataWithoutNaturalKeysTestCase, LoadDataWithNaturalKeysTestCase, LoadDataWithoutNaturalKeysTestCase, LoadDataWithNaturalKeysTestCase,

View File

@ -2,7 +2,6 @@ from StringIO import StringIO
from django.contrib.auth import models, management from django.contrib.auth import models, management
from django.contrib.auth.management.commands import changepassword from django.contrib.auth.management.commands import changepassword
from django.core.management import call_command
from django.test import TestCase from django.test import TestCase
@ -70,53 +69,3 @@ class ChangepasswordManagementCommandTestCase(TestCase):
stdout=self.stdout, stdout=self.stdout,
stderr=self.stderr stderr=self.stderr
) )
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()

View File

@ -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()