mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Issue #19884: readline: Disable the meta modifier key if stdout is not a
terminal to not write the ANSI sequence "\033[1034h" into stdout. This sequence is used on some terminal (ex: TERM=xterm-256color") to enable support of 8 bit characters.
This commit is contained in:
parent
cdb2c601db
commit
a3c80ce8b7
3 changed files with 34 additions and 5 deletions
|
@ -1,17 +1,20 @@
|
|||
"""
|
||||
Very minimal unittests for parts of the readline module.
|
||||
|
||||
These tests were added to check that the libedit emulation on OSX and
|
||||
the "real" readline have the same interface for history manipulation. That's
|
||||
why the tests cover only a small subset of the interface.
|
||||
"""
|
||||
import os
|
||||
import unittest
|
||||
from test.support import run_unittest, import_module
|
||||
from test.script_helper import assert_python_ok
|
||||
|
||||
# Skip tests if there is no readline module
|
||||
readline = import_module('readline')
|
||||
|
||||
class TestHistoryManipulation (unittest.TestCase):
|
||||
"""
|
||||
These tests were added to check that the libedit emulation on OSX and the
|
||||
"real" readline have the same interface for history manipulation. That's
|
||||
why the tests cover only a small subset of the interface.
|
||||
"""
|
||||
|
||||
@unittest.skipIf(not hasattr(readline, 'clear_history'),
|
||||
"The history update test cannot be run because the "
|
||||
|
@ -40,8 +43,18 @@ class TestHistoryManipulation (unittest.TestCase):
|
|||
self.assertEqual(readline.get_current_history_length(), 1)
|
||||
|
||||
|
||||
class TestReadline(unittest.TestCase):
|
||||
def test_init(self):
|
||||
# Issue #19884: Ensure that the ANSI sequence "\033[1034h" is not
|
||||
# written into stdout when the readline module is imported and stdout
|
||||
# is redirected to a pipe.
|
||||
rc, stdout, stderr = assert_python_ok('-c', 'import readline',
|
||||
TERM='xterm-256color')
|
||||
self.assertEqual(stdout, b'')
|
||||
|
||||
|
||||
def test_main():
|
||||
run_unittest(TestHistoryManipulation)
|
||||
run_unittest(TestHistoryManipulation, TestReadline)
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue