From 7cbb4f79d1e3f1690fb31b118f47590d9470b59b Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 24 Jul 2014 08:46:29 -0400 Subject: [PATCH] [1.7.x] Improved patching of sys.stdout in refs #23078. Backport of 936fba5878 from master --- tests/contenttypes_tests/tests.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/tests/contenttypes_tests/tests.py b/tests/contenttypes_tests/tests.py index ee4821ae4b..a54fb5cc94 100644 --- a/tests/contenttypes_tests/tests.py +++ b/tests/contenttypes_tests/tests.py @@ -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)