MCPcopy Index your code
hub / github.com/python/cpython / test_write_read_append

Method test_write_read_append

Lib/test/test_readline.py:77–127  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

75 @unittest.skipUnless(hasattr(readline, "append_history_file"),
76 "append_history not available")
77 def test_write_read_append(self):
78 hfile = tempfile.NamedTemporaryFile(delete=False)
79 hfile.close()
80 hfilename = hfile.name
81 self.addCleanup(unlink, hfilename)
82
83 # test write-clear-read == nop
84 readline.clear_history()
85 readline.add_history("first line")
86 readline.add_history("second line")
87 readline.write_history_file(hfilename)
88
89 readline.clear_history()
90 self.assertEqual(readline.get_current_history_length(), 0)
91
92 readline.read_history_file(hfilename)
93 self.assertEqual(readline.get_current_history_length(), 2)
94 self.assertEqual(readline.get_history_item(1), "first line")
95 self.assertEqual(readline.get_history_item(2), "second line")
96
97 # test append
98 readline.append_history_file(1, hfilename)
99 readline.clear_history()
100 readline.read_history_file(hfilename)
101 self.assertEqual(readline.get_current_history_length(), 3)
102 self.assertEqual(readline.get_history_item(1), "first line")
103 self.assertEqual(readline.get_history_item(2), "second line")
104 self.assertEqual(readline.get_history_item(3), "second line")
105
106 # test 'no such file' behaviour
107 os.unlink(hfilename)
108 try:
109 readline.append_history_file(1, hfilename)
110 except FileNotFoundError:
111 pass # Some implementations return this error (libreadline).
112 else:
113 os.unlink(hfilename) # Some create it anyways (libedit).
114 # If the file wasn't created, unlink will fail.
115 # We're just testing that one of the two expected behaviors happens
116 # instead of an incorrect error.
117
118 # write_history_file can create the target
119 readline.write_history_file(hfilename)
120
121 # Negative values should be disallowed
122 with self.assertRaises(ValueError):
123 readline.append_history_file(-42, hfilename)
124
125 # See gh-122431, using the minimum signed integer value caused a segfault
126 with self.assertRaises(ValueError):
127 readline.append_history_file(-2147483648, hfilename)
128
129 def test_nonascii_history(self):
130 readline.clear_history()

Callers

nothing calls this directly

Calls 12

addCleanupMethod · 0.80
clear_historyMethod · 0.80
add_historyMethod · 0.80
write_history_fileMethod · 0.80
read_history_fileMethod · 0.80
get_history_itemMethod · 0.80
append_history_fileMethod · 0.80
closeMethod · 0.45
assertEqualMethod · 0.45
unlinkMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected