diff options
author | Darik Gamble <darik.gamble.spam@gmail.com> | 2015-11-01 17:35:50 -0500 |
---|---|---|
committer | Darik Gamble <darik.gamble.spam@gmail.com> | 2015-11-08 15:55:50 -0500 |
commit | 0cf0b7ff59095a5ace166147a7750fcd78a13608 (patch) | |
tree | ac9156077a133601b039012adab92e1781f2b315 | |
parent | 13b6c9356317265acaac98b6ade73f4152841302 (diff) |
Update pgcompleter tests
-rw-r--r-- | tests/test_fuzzy_completion.py | 11 | ||||
-rw-r--r-- | tests/test_smart_completion_public_schema_only.py | 29 |
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) |