@@ -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
136162class TestReadline (unittest .TestCase ):
137163
0 commit comments