Patch sys.stdin and sys.stdout in tests

This commit is contained in:
Šarūnas Nejus 2026-01-15 21:02:21 +00:00
parent 6c2c46091b
commit cc4dd688b8
No known key found for this signature in database
3 changed files with 6 additions and 15 deletions

View file

@ -190,14 +190,6 @@ class DummyIO:
def readcount(self):
return self.stdin.reads
def install(self):
sys.stdin = self.stdin
sys.stdout = self.stdout
def restore(self):
sys.stdin = sys.__stdin__
sys.stdout = sys.__stdout__
# Utility.

View file

@ -168,13 +168,14 @@ class IOMixin:
def io(self) -> _common.DummyIO:
return _common.DummyIO()
def setUp(self):
def setUp(self) -> None:
super().setUp()
self.io.install()
def tearDown(self):
super().tearDown()
self.io.restore()
patcher = patch.multiple(
"sys", stdin=self.io.stdin, stdout=self.io.stdout
)
patcher.start()
self.addCleanup(patcher.stop)
class TestHelper(ConfigMixin):
@ -759,7 +760,6 @@ class TerminalImportMixin(IOMixin, ImportHelper):
io: _common.DummyIO
def _get_import_session(self, import_dir: bytes) -> importer.ImportSession:
self.io.install()
return TerminalImportSessionFixture(
self.lib,
loghandler=None,

View file

@ -49,7 +49,6 @@ class CompletionTest(IOMixin, TestPluginTestCase):
# Load completion script.
self.run_command("completion", lib=None)
completion_script = self.io.getoutput().encode("utf-8")
self.io.restore()
tester.stdin.writelines(completion_script.splitlines(True))
# Load test suite.