gh-130660: Restore sys.ps1 and sys.ps2 after code.interact (#130661)

This commit is contained in:
Tian Gao 2025-02-28 13:15:55 -05:00 committed by GitHub
parent 54965f3fb2
commit fdcbc29f26
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 45 additions and 5 deletions

View file

@ -39,19 +39,47 @@ def setUp(self):
self.mock_sys()
def test_ps1(self):
self.infunc.side_effect = EOFError('Finished')
self.infunc.side_effect = [
"import code",
"code.sys.ps1",
EOFError('Finished')
]
self.console.interact()
self.assertEqual(self.sysmod.ps1, '>>> ')
output = ''.join(''.join(call[1]) for call in self.stdout.method_calls)
self.assertIn('>>> ', output)
self.assertNotHasAttr(self.sysmod, 'ps1')
self.infunc.side_effect = [
"import code",
"code.sys.ps1",
EOFError('Finished')
]
self.sysmod.ps1 = 'custom1> '
self.console.interact()
output = ''.join(''.join(call[1]) for call in self.stdout.method_calls)
self.assertIn('custom1> ', output)
self.assertEqual(self.sysmod.ps1, 'custom1> ')
def test_ps2(self):
self.infunc.side_effect = EOFError('Finished')
self.infunc.side_effect = [
"import code",
"code.sys.ps2",
EOFError('Finished')
]
self.console.interact()
self.assertEqual(self.sysmod.ps2, '... ')
output = ''.join(''.join(call[1]) for call in self.stdout.method_calls)
self.assertIn('... ', output)
self.assertNotHasAttr(self.sysmod, 'ps2')
self.infunc.side_effect = [
"import code",
"code.sys.ps2",
EOFError('Finished')
]
self.sysmod.ps2 = 'custom2> '
self.console.interact()
output = ''.join(''.join(call[1]) for call in self.stdout.method_calls)
self.assertIn('custom2> ', output)
self.assertEqual(self.sysmod.ps2, 'custom2> ')
def test_console_stderr(self):