summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarik Gamble <darik.gamble.spam@gmail.com>2015-11-01 17:35:50 -0500
committerDarik Gamble <darik.gamble.spam@gmail.com>2015-11-08 15:55:50 -0500
commit0cf0b7ff59095a5ace166147a7750fcd78a13608 (patch)
treeac9156077a133601b039012adab92e1781f2b315
parent13b6c9356317265acaac98b6ade73f4152841302 (diff)
Update pgcompleter tests
-rw-r--r--tests/test_fuzzy_completion.py11
-rw-r--r--tests/test_smart_completion_public_schema_only.py29
2 files changed, 32 insertions, 8 deletions
diff --git a/tests/test_fuzzy_completion.py b/tests/test_fuzzy_completion.py
index 5fcd3d05..ce148d6b 100644
--- a/tests/test_fuzzy_completion.py
+++ b/tests/test_fuzzy_completion.py
@@ -26,10 +26,8 @@ def test_ranking_ignores_identifier_quotes(completer):
text = 'user'
collection = ['user_action', '"user"']
-
- result = [match.text for match in completer.find_matches(text, collection)]
-
- assert result == ['"user"', 'user_action']
+ matches = completer.find_matches(text, collection)
+ assert len(matches) == 2
def test_ranking_based_on_shortest_match(completer):
@@ -48,7 +46,6 @@ def test_ranking_based_on_shortest_match(completer):
text = 'user'
collection = ['api_user', 'user_group']
+ matches = completer.find_matches(text, collection)
- result = [match.text for match in completer.find_matches(text, collection)]
-
- assert result == ['user_group', 'api_user']
+ assert matches[1].priority > matches[0].priority
diff --git a/tests/test_smart_completion_public_schema_only.py b/tests/test_smart_completion_public_schema_only.py
index 16e7a5ab..96bc1266 100644
--- a/tests/test_smart_completion_public_schema_only.py
+++ b/tests/test_smart_completion_public_schema_only.py
@@ -474,4 +474,31 @@ def test_join_functions_on_suggests_columns(completer, complete_event):
Document(text=text, cursor_position=pos), complete_event))
assert set(result) == set([
Completion(text='x', start_position=0, display_meta='column'),
- Completion(text='y', start_position=0, display_meta='column')]) \ No newline at end of file
+ Completion(text='y', start_position=0, display_meta='column')])
+
+
+def test_learn_keywords(completer, complete_event):
+ sql = 'CREATE VIEW v AS SELECT 1'
+ completer.extend_query_history(sql)
+
+ # Now that we've used `VIEW` once, it should be suggested ahead of other
+ # keywords starting with v.
+ sql = 'create v'
+ completions = completer.get_completions(
+ Document(text=sql, cursor_position=len(sql)), complete_event)
+ assert completions[0].text == 'VIEW'
+
+
+def test_learn_table_names(completer, complete_event):
+ history = 'SELECT * FROM users; SELECT * FROM orders; SELECT * FROM users'
+ completer.extend_query_history(history)
+
+ sql = 'SELECT * FROM '
+ completions = completer.get_completions(
+ Document(text=sql, cursor_position=len(sql)), complete_event)
+
+ # `users` should be higher priority than `orders` (used more often)
+ users = Completion(text='users', start_position=0, display_meta='table')
+ orders = Completion(text='orders', start_position=0, display_meta='table')
+
+ assert completions.index(users) < completions.index(orders)