Martin Panter added the comment:
I left a few minor comments in the code review.
I agree automated testing would be awkward for Readline. It should be possible
using a pseudoterminal (pty). In fact there is already very basic testing that
does this in /Lib/test/test_builtin.py, class PtyTests. It only tests the
input() prompt.
I could have a go at writing a test. I guess pseudocode for a test would look a
bit like:
def run_pty(script):
[master, slave] = pty.openpty()
with subprocess.Popen(script, stdin=slave, stdout=slave, stderr=slave)
# Read and write concurrently like proc.communicate()
master.write(b"dummy input\r")
return slave.read()
template = """\
import readline
readline.set_auto_history({})
input()
print("History length:", readline.get_current_history_length())
"""
def test_auto_history_enabled(self):
output = run_session(template.format(True))
self.assertIn(b"History length: 1\n", output)
def test_auto_history_disabled(self):
output = run_session(template.format(False))
self.assertIn(b"History length: 0\n", output)
----------
stage: -> patch review
versions: -Python 2.7, Python 3.5
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue26870>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com