Commit 7cbb4f79 authored by Tim Graham's avatar Tim Graham
Browse files

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

Backport of 936fba58 from master
parent 663af270
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -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)