Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
sys.stdout = stdout = MyBytesIO()
sys.stderr = stderr = MyBytesIO()
func()
except InnerTestException:
pass
except bdb.BdbQuit:
print("!! Received unexpected bdb.BdbQuit !!")
except Exception:
# Make it available for pytests output capturing.
print(stdout.get_unicode_value(), file=oldstdout)
raise
finally:
sys.stdin = oldstdin
sys.stdout = oldstdout
sys.stderr = oldstderr
pdbpp.Pdb.get_terminal_size = old_get_terminal_size
stderr = stderr.get_unicode_value()
if stderr:
# Make it available for pytests output capturing.
print(stdout.get_unicode_value())
raise AssertionError("Unexpected output on stderr: %s" % stderr)
return stdout.get_unicode_value().splitlines()
self.encoding = encoding
def write(self, msg):
if isinstance(msg, text_type):
msg = msg.encode(self.encoding)
super(MyBytesIO, self).write(msg)
def get_unicode_value(self):
return self.getvalue().decode(self.encoding).replace(
pdbpp.CLEARSCREEN, "\n"
).replace(chr(27), "^[")
# Use a predictable terminal size.
if terminal_size is None:
terminal_size = (80, 24)
pdbpp.Pdb.get_terminal_size = staticmethod(lambda: terminal_size)
try:
sys.stdin = FakeStdin(input)
sys.stdout = stdout = MyBytesIO()
sys.stderr = stderr = MyBytesIO()
func()
except InnerTestException:
pass
except bdb.BdbQuit:
print("!! Received unexpected bdb.BdbQuit !!")
except Exception:
# Make it available for pytests output capturing.
print(stdout.get_unicode_value(), file=oldstdout)
raise
finally:
sys.stdin = oldstdin
sys.stdout = oldstdout