1
0
Fork 0

Adding upstream version 1.31.2.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-05-04 09:25:34 +02:00
parent 9aaa9c7fe0
commit 5829a372a2
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
23 changed files with 166 additions and 107 deletions

View file

@ -28,7 +28,7 @@ def test_select_keyword_completion(completer, complete_event):
text = "SEL"
position = len("SEL")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([Completion(text="SELECT", start_position=-3)])
assert result == [Completion(text="SELECT", start_position=-3)]
def test_function_name_completion(completer, complete_event):

View file

@ -1,6 +1,7 @@
import pytest
from mycli.packages.parseutils import (
extract_tables,
extract_tables_from_complete_statements,
query_starts_with,
queries_start_with,
is_destructive,
@ -77,7 +78,6 @@ def test_simple_insert_single_table():
assert tables == [(None, "abc", "abc")]
@pytest.mark.xfail
def test_simple_insert_single_table_schema_qualified():
tables = extract_tables('insert into abc.def (id, name) values (1, "def")')
assert tables == [("abc", "def", None)]
@ -108,6 +108,22 @@ def test_join_as_table():
assert tables == [(None, "my_table", "m")]
def test_extract_tables_from_complete_statements():
tables = extract_tables_from_complete_statements("SELECT * FROM my_table AS m WHERE m.a > 5")
assert tables == [(None, "my_table", "m")]
def test_extract_tables_from_complete_statements_cte():
tables = extract_tables_from_complete_statements("WITH my_cte (id, num) AS ( SELECT id, COUNT(1) FROM my_table GROUP BY id ) SELECT *")
assert tables == [(None, "my_table", None)]
# this would confuse plain extract_tables() per #1122
def test_extract_tables_from_multiple_complete_statements():
tables = extract_tables_from_complete_statements(r'\T sql-insert; SELECT * FROM my_table AS m WHERE m.a > 5')
assert tables == [(None, "my_table", "m")]
def test_query_starts_with():
query = "USE test;"
assert query_starts_with(query, ("use",)) is True

View file

@ -58,7 +58,7 @@ def test_select_keyword_completion(completer, complete_event):
text = "SEL"
position = len("SEL")
result = completer.get_completions(Document(text=text, cursor_position=position), complete_event)
assert list(result) == list([Completion(text="SELECT", start_position=-3)])
assert list(result) == [Completion(text="SELECT", start_position=-3)]
def test_select_star(completer, complete_event):
@ -72,19 +72,19 @@ def test_table_completion(completer, complete_event):
text = "SELECT * FROM "
position = len(text)
result = completer.get_completions(Document(text=text, cursor_position=position), complete_event)
assert list(result) == list([
assert list(result) == [
Completion(text="users", start_position=0),
Completion(text="orders", start_position=0),
Completion(text="`select`", start_position=0),
Completion(text="`réveillé`", start_position=0),
])
]
def test_function_name_completion(completer, complete_event):
text = "SELECT MA"
position = len("SELECT MA")
result = completer.get_completions(Document(text=text, cursor_position=position), complete_event)
assert list(result) == list([
assert list(result) == [
Completion(text="MAX", start_position=-2),
Completion(text="CHANGE MASTER TO", start_position=-2),
Completion(text="CURRENT_TIMESTAMP", start_position=-2),
@ -94,7 +94,7 @@ def test_function_name_completion(completer, complete_event):
Completion(text="PRIMARY", start_position=-2),
Completion(text="ROW_FORMAT", start_position=-2),
Completion(text="SMALLINT", start_position=-2),
])
]
def test_suggested_column_names(completer, complete_event):
@ -134,13 +134,13 @@ def test_suggested_column_names_in_function(completer, complete_event):
text = "SELECT MAX( from users"
position = len("SELECT MAX(")
result = completer.get_completions(Document(text=text, cursor_position=position), complete_event)
assert list(result) == list([
assert list(result) == [
Completion(text="*", start_position=0),
Completion(text="id", start_position=0),
Completion(text="email", start_position=0),
Completion(text="first_name", start_position=0),
Completion(text="last_name", start_position=0),
])
]
def test_suggested_column_names_with_table_dot(completer, complete_event):
@ -154,13 +154,13 @@ def test_suggested_column_names_with_table_dot(completer, complete_event):
text = "SELECT users. from users"
position = len("SELECT users.")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([
assert result == [
Completion(text="*", start_position=0),
Completion(text="id", start_position=0),
Completion(text="email", start_position=0),
Completion(text="first_name", start_position=0),
Completion(text="last_name", start_position=0),
])
]
def test_suggested_column_names_with_alias(completer, complete_event):
@ -174,13 +174,13 @@ def test_suggested_column_names_with_alias(completer, complete_event):
text = "SELECT u. from users u"
position = len("SELECT u.")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([
assert result == [
Completion(text="*", start_position=0),
Completion(text="id", start_position=0),
Completion(text="email", start_position=0),
Completion(text="first_name", start_position=0),
Completion(text="last_name", start_position=0),
])
]
def test_suggested_multiple_column_names(completer, complete_event):
@ -221,13 +221,13 @@ def test_suggested_multiple_column_names_with_alias(completer, complete_event):
text = "SELECT u.id, u. from users u"
position = len("SELECT u.id, u.")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([
assert result == [
Completion(text="*", start_position=0),
Completion(text="id", start_position=0),
Completion(text="email", start_position=0),
Completion(text="first_name", start_position=0),
Completion(text="last_name", start_position=0),
])
]
def test_suggested_multiple_column_names_with_dot(completer, complete_event):
@ -242,65 +242,65 @@ def test_suggested_multiple_column_names_with_dot(completer, complete_event):
text = "SELECT users.id, users. from users u"
position = len("SELECT users.id, users.")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([
assert result == [
Completion(text="*", start_position=0),
Completion(text="id", start_position=0),
Completion(text="email", start_position=0),
Completion(text="first_name", start_position=0),
Completion(text="last_name", start_position=0),
])
]
def test_suggested_aliases_after_on(completer, complete_event):
text = "SELECT u.name, o.id FROM users u JOIN orders o ON "
position = len("SELECT u.name, o.id FROM users u JOIN orders o ON ")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([
assert result == [
Completion(text="u", start_position=0),
Completion(text="o", start_position=0),
])
]
def test_suggested_aliases_after_on_right_side(completer, complete_event):
text = "SELECT u.name, o.id FROM users u JOIN orders o ON o.user_id = "
position = len("SELECT u.name, o.id FROM users u JOIN orders o ON o.user_id = ")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([
assert result == [
Completion(text="u", start_position=0),
Completion(text="o", start_position=0),
])
]
def test_suggested_tables_after_on(completer, complete_event):
text = "SELECT users.name, orders.id FROM users JOIN orders ON "
position = len("SELECT users.name, orders.id FROM users JOIN orders ON ")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([
assert result == [
Completion(text="users", start_position=0),
Completion(text="orders", start_position=0),
])
]
def test_suggested_tables_after_on_right_side(completer, complete_event):
text = "SELECT users.name, orders.id FROM users JOIN orders ON orders.user_id = "
position = len("SELECT users.name, orders.id FROM users JOIN orders ON orders.user_id = ")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([
assert result == [
Completion(text="users", start_position=0),
Completion(text="orders", start_position=0),
])
]
def test_table_names_after_from(completer, complete_event):
text = "SELECT * FROM "
position = len("SELECT * FROM ")
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
assert result == list([
assert result == [
Completion(text="users", start_position=0),
Completion(text="orders", start_position=0),
Completion(text="`select`", start_position=0),
Completion(text="`réveillé`", start_position=0),
])
]
def test_auto_escaped_col_names(completer, complete_event):
@ -369,5 +369,5 @@ def dummy_list_path(dir_name):
def test_file_name_completion(completer, complete_event, text, expected):
position = len(text)
result = list(completer.get_completions(Document(text=text, cursor_position=position), complete_event))
expected = list((Completion(txt, pos) for txt, pos in expected))
expected = [Completion(txt, pos) for txt, pos in expected]
assert result == expected

View file

@ -223,9 +223,7 @@ def test_watch_query_full():
expected_results = 4
ctrl_c_process = send_ctrl_c(wait_interval)
with db_connection().cursor() as cur:
results = list(
result for result in mycli.packages.special.iocommands.watch_query(arg="{0!s} {1!s}".format(watch_seconds, query), cur=cur)
)
results = list(mycli.packages.special.iocommands.watch_query(arg="{0!s} {1!s}".format(watch_seconds, query), cur=cur))
ctrl_c_process.join(1)
assert len(results) == expected_results
for result in results:

View file

@ -61,8 +61,8 @@ def test_table_and_columns_query(executor):
run(executor, "create table a(x text, y text)")
run(executor, "create table b(z text)")
assert set(executor.tables()) == set([("a",), ("b",)])
assert set(executor.table_columns()) == set([("a", "x"), ("a", "y"), ("b", "z")])
assert set(executor.tables()) == {("a",), ("b",)}
assert set(executor.table_columns()) == {("a", "x"), ("a", "y"), ("b", "z")}
@dbtest