[1.7.x] Improved patching of sys.stdout in refs #23078.

Backport of 936fba5878 from master
This commit is contained in:
Tim Graham 2014-07-24 08:46:29 -04:00
parent 663af270b5
commit 7cbb4f79d1
1 changed files with 7 additions and 10 deletions

View File

@ -346,19 +346,20 @@ class UpdateContentTypesTests(TestCase):
self.before_count = ContentType.objects.count()
ContentType.objects.create(name='fake', app_label='contenttypes_tests', model='Fake')
self.app_config = apps.get_app_config('contenttypes_tests')
self.old_stdout = sys.stdout
sys.stdout = StringIO()
def tearDown(self):
sys.stdout = self.old_stdout
def test_interactive_true(self):
"""
interactive mode of update_contenttypes() (the default) should delete
stale contenttypes.
"""
self.old_stdout = sys.stdout
sys.stdout = StringIO()
management.input = lambda x: force_str("yes")
management.update_contenttypes(self.app_config)
output = sys.stdout.getvalue()
sys.stdout = self.old_stdout
self.assertIn("Deleting stale content type", output)
self.assertIn("Deleting stale content type", sys.stdout.getvalue())
self.assertEqual(ContentType.objects.count(), self.before_count)
def test_interactive_false(self):
@ -366,10 +367,6 @@ class UpdateContentTypesTests(TestCase):
non-interactive mode of update_contenttypes() shouldn't delete stale
content types.
"""
self.old_stdout = sys.stdout
sys.stdout = StringIO()
management.update_contenttypes(self.app_config, interactive=False)
output = sys.stdout.getvalue()
sys.stdout = self.old_stdout
self.assertIn("Stale content types remain.", output)
self.assertIn("Stale content types remain.", sys.stdout.getvalue())
self.assertEqual(ContentType.objects.count(), self.before_count + 1)