Migrated multiple_database tests to use new stdout argument on management commands, rather than monkeypatching stdout.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13320 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2010-06-05 05:32:05 +00:00
parent 5da6aeba17
commit 45e5fb1ee2
1 changed files with 8 additions and 15 deletions

View File

@ -1491,19 +1491,10 @@ class AuthTestCase(TestCase):
self.old_routers = router.routers
router.routers = [AuthRouter()]
# Redirect stdout to a buffer so we can test
# the output of a management command
self.old_stdout = sys.stdout
self.stdout = StringIO()
sys.stdout = self.stdout
def tearDown(self):
# Restore the 'other' database as an independent database
router.routers = self.old_routers
# Restore stdout
sys.stdout = self.old_stdout
def test_auth_manager(self):
"The methods on the auth manager obey database hints"
# Create one user using default allocation policy
@ -1539,14 +1530,16 @@ class AuthTestCase(TestCase):
# Check that dumping the default database doesn't try to include auth
# because allow_syncdb prohibits auth on default
self.stdout.flush()
management.call_command('dumpdata', 'auth', format='json', database='default')
self.assertEquals(self.stdout.getvalue(), '[]\n')
new_io = StringIO()
management.call_command('dumpdata', 'auth', format='json', database='default', stdout=new_io)
command_output = new_io.getvalue().strip()
self.assertEqual(command_output, '[]')
# Check that dumping the other database does include auth
self.stdout.flush()
management.call_command('dumpdata', 'auth', format='json', database='other')
self.assertTrue('alice@example.com' in self.stdout.getvalue())
new_io = StringIO()
management.call_command('dumpdata', 'auth', format='json', database='other', stdout=new_io)
command_output = new_io.getvalue().strip()
self.assertTrue('"email": "alice@example.com",' in command_output)
class UserProfileTestCase(TestCase):
def setUp(self):