Skip to content
5 changes: 3 additions & 2 deletions Lib/sqlite3/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,9 @@ def runsource(self, source, filename="<input>", symbol="single"):
case "quit":
sys.exit(0)
case _ as unknown:
print("Error: unknown command or invalid arguments: "
f'"{unknown}". Enter ".help" for help')
if unknown:
print("Error: unknown command or invalid arguments:"
f' "{unknown}". Enter ".help" for help')
else:
if not sqlite3.complete_statement(source):
return True
Expand Down
9 changes: 6 additions & 3 deletions Lib/test/test_sqlite3/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,15 @@ def test_interact_empty_source(self):
self.assertEqual(out.count(self.PS2), 0)

def test_interact_dot_commands_unknown(self):
out, err = self.run_cli(commands=(".unknown_command",))
out, err = self.run_cli(commands=(".unknown_command", "."))
self.assertIn(self.MEMORY_DB_MSG, err)
self.assertEndsWith(out, self.PS1)
self.assertEqual(out.count(self.PS1), 2)
self.assertEqual(out.count(self.PS1), 3)
self.assertEqual(out.count(self.PS2), 0)
self.assertIn('Error: unknown command or invalid arguments: "unknown_command"', out)
# test "unknown_command" is pointed out in the error message
self.assertIn("unknown_command", out)
# test ignore empty dot command "." to mimic sqlite3 CLI
self.assertEqual(out.count('Error'), 1)

def test_interact_dot_commands_with_whitespaces(self):
out, err = self.run_cli(commands=(".version ", ". version"))
Expand Down
Loading