Skip to content

Commit ba60eae

Browse files
committed
gh-121160: Add a test for readline.set_history_length
1 parent afee76b commit ba60eae

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

Lib/test/test_readline.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,32 @@ def test_nonascii_history(self):
132132
self.assertEqual(readline.get_history_item(1), "entrée 1")
133133
self.assertEqual(readline.get_history_item(2), "entrée 22")
134134

135+
def test_write_read_limited_history(self):
136+
previous_length = readline.get_history_length()
137+
self.addCleanup(readline.set_history_length, previous_length)
138+
139+
readline.clear_history()
140+
readline.add_history("first line")
141+
readline.add_history("second line")
142+
readline.add_history("third line")
143+
144+
readline.set_history_length(2)
145+
self.assertEqual(readline.get_history_length(), 2)
146+
readline.write_history_file(TESTFN)
147+
self.addCleanup(os.remove, TESTFN)
148+
149+
readline.clear_history()
150+
self.assertEqual(readline.get_current_history_length(), 0)
151+
self.assertEqual(readline.get_history_length(), 2)
152+
153+
readline.read_history_file(TESTFN)
154+
self.assertEqual(readline.get_history_item(1), "second line")
155+
self.assertEqual(readline.get_history_item(2), "third line")
156+
self.assertEqual(readline.get_history_item(3), None)
157+
158+
# Readline seems to report an additional history element.
159+
self.assertIn(readline.get_current_history_length(), (2, 3))
160+
135161

136162
class TestReadline(unittest.TestCase):
137163

0 commit comments

Comments
 (0)