Skip to content

Commit 276b4a7

Browse files
committed
Turn off colored-completion-prefix for readline
1 parent 805d997 commit 276b4a7

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

Lib/test/test_sqlite3/test_cli.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""sqlite3 CLI tests."""
2-
import re
32
import sqlite3
3+
import textwrap
44
import unittest
55

66
from sqlite3.__main__ import main as cli
@@ -214,12 +214,14 @@ def setUpClass(cls):
214214
raise unittest.SkipTest("libedit readline is not supported")
215215

216216
def test_keyword_completion(self):
217-
script = "from sqlite3.__main__ import main; main()"
217+
script = textwrap.dedent("""
218+
import readline
219+
readline.parse_and_bind("set colored-completion-prefix off")
220+
from sqlite3.__main__ import main; main()
221+
""")
218222
# List candidates starting with 'S', there should be multiple matches.
219223
input = b"S\t\tEL\t 1;\n.quit\n"
220-
output = run_pty(script, input, env={"NO_COLOR": "1"})
221-
# Remove control sequences that colorize typed prefix 'S'
222-
output = re.sub(rb"\x1b\[[0-9;]*[mK]", b"", output)
224+
output = run_pty(script, input)
223225
self.assertIn(b"SELECT", output)
224226
self.assertIn(b"SET", output)
225227
self.assertIn(b"SAVEPOINT", output)
@@ -228,23 +230,28 @@ def test_keyword_completion(self):
228230
# Keywords are completed in upper case for even lower case user input
229231
input = b"sel\t\t 1;\n.quit\n"
230232
output = run_pty(script, input)
231-
output = re.sub(rb"\x1b\[[0-9;]*[mK]", b"", output)
232233
self.assertIn(b"SELECT", output)
233234
self.assertIn(b"(1,)", output)
234235

235236
def test_nothing_to_complete(self):
236-
script = "from sqlite3.__main__ import main; main()"
237+
script = textwrap.dedent("""
238+
import readline
239+
readline.parse_and_bind("set colored-completion-prefix off")
240+
from sqlite3.__main__ import main; main()
241+
""")
237242
input = b"zzzz\t;\n.quit\n"
238243
output = run_pty(script, input, env={"NO_COLOR": "1"})
239-
output = re.sub(rb"\x1b\[[0-9;]*[mK]", b"", output)
240244
for keyword in KEYWORDS:
241245
self.assertNotRegex(output, rf"\b{keyword}\b".encode("utf-8"))
242246

243247
def test_completion_order(self):
244-
script = "from sqlite3.__main__ import main; main()"
248+
script = textwrap.dedent("""
249+
import readline
250+
readline.parse_and_bind("set colored-completion-prefix off")
251+
from sqlite3.__main__ import main; main()
252+
""")
245253
input = b"S\t;\n.quit\n"
246254
output = run_pty(script, input, env={"NO_COLOR": "1"})
247-
output = re.sub(rb"\x1b\[[0-9;]*[mK]", b"", output).strip()
248255
savepoint_idx = output.find(b"SAVEPOINT")
249256
select_idx = output.find(b"SELECT")
250257
set_idx = output.find(b"SET")

0 commit comments

Comments
 (0)