123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- --- contrib/python/pytest/py3/_pytest/debugging.py (index)
- +++ contrib/python/pytest/py3/_pytest/debugging.py (working tree)
- @@ -3,2 +3,3 @@ from __future__ import absolute_import
- import functools
- +import os
- import sys
- @@ -32,2 +33,38 @@ from _pytest import outcomes
-
- +def import_readline():
- + try:
- + import readline
- + except ImportError:
- + sys.path.append('/usr/lib/python2.7/lib-dynload')
- +
- + try:
- + import readline
- + except ImportError as e:
- + print('can not import readline:', e)
- +
- + import subprocess
- + try:
- + subprocess.check_call('stty icrnl'.split())
- + except OSError as e:
- + print('can not restore Enter, use Control+J:', e)
- +
- +
- +def tty():
- + if os.isatty(1):
- + return
- +
- + fd = os.open('/dev/tty', os.O_RDWR)
- + os.dup2(fd, 0)
- + os.dup2(fd, 1)
- + os.dup2(fd, 2)
- + os.close(fd)
- +
- + old_sys_path = sys.path
- + sys.path = list(sys.path)
- + try:
- + import_readline()
- + finally:
- + sys.path = old_sys_path
- +
- +
- def _validate_usepdb_cls(value: str) -> Tuple[str, str]:
- @@ -280,2 +317,3 @@ class pytestPDB(object):
- """Invoke debugging via ``Pdb.set_trace``, dropping any IO capturing."""
- + tty()
- frame = sys._getframe().f_back
- @@ -295,2 +333,3 @@ class PdbInvoke(object):
- sys.stdout.write(err)
- + tty()
- assert call.excinfo is not None
-
|