diff options
author | maxim-yurchuk <maxim-yurchuk@yandex-team.com> | 2024-10-09 12:29:46 +0300 |
---|---|---|
committer | maxim-yurchuk <maxim-yurchuk@yandex-team.com> | 2024-10-09 13:14:22 +0300 |
commit | 9731d8a4bb7ee2cc8554eaf133bb85498a4c7d80 (patch) | |
tree | a8fb3181d5947c0d78cf402aa56e686130179049 /contrib/python/pytest/py2/patches/05-support-readline.patch | |
parent | a44b779cd359f06c3ebbef4ec98c6b38609d9d85 (diff) | |
download | ydb-9731d8a4bb7ee2cc8554eaf133bb85498a4c7d80.tar.gz |
publishFullContrib: true for ydb
<HIDDEN_URL>
commit_hash:c82a80ac4594723cebf2c7387dec9c60217f603e
Diffstat (limited to 'contrib/python/pytest/py2/patches/05-support-readline.patch')
-rw-r--r-- | contrib/python/pytest/py2/patches/05-support-readline.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/contrib/python/pytest/py2/patches/05-support-readline.patch b/contrib/python/pytest/py2/patches/05-support-readline.patch new file mode 100644 index 0000000000..51c6ee2bf4 --- /dev/null +++ b/contrib/python/pytest/py2/patches/05-support-readline.patch @@ -0,0 +1,69 @@ +--- contrib/python/pytest/py2/_pytest/debugging.py (index) ++++ contrib/python/pytest/py2/_pytest/debugging.py (working tree) +@@ -4,6 +4,7 @@ from __future__ import absolute_import + from __future__ import division + from __future__ import print_function + ++import os + import argparse + import pdb + import sys +@@ -14,6 +15,42 @@ from _pytest import outcomes + from _pytest.config.exceptions import UsageError + + ++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): + """Validate syntax of --pdbcls option.""" + try: +@@ -249,6 +286,7 @@ class pytestPDB(object): + @classmethod + def set_trace(cls, *args, **kwargs): + """Invoke debugging via ``Pdb.set_trace``, dropping any IO capturing.""" ++ tty() + frame = sys._getframe().f_back + _pdb = cls._init_pdb("set_trace", *args, **kwargs) + _pdb.set_trace(frame) +@@ -262,6 +300,7 @@ class PdbInvoke(object): + out, err = capman.read_global_capture() + sys.stdout.write(out) + sys.stdout.write(err) ++ tty() + _enter_pdb(node, call.excinfo, report) + + def pytest_internalerror(self, excrepr, excinfo): |