diff options
author | Iryna Cherniavska <icherniavska@cars.com> | 2014-12-23 15:01:55 -0800 |
---|---|---|
committer | Amjith Ramanujam <amjith@newrelic.com> | 2014-12-23 23:59:14 -0800 |
commit | 6933b72cb9e8a6440878a196f3912f7b91d9723e (patch) | |
tree | 51bd9c61e4e55ec10738d3e6087040930474ab9b /tests | |
parent | 6a9b224834d1a523b03ce1e7c6ff4fa3ccea2583 (diff) |
added some smart completion tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_smart_completion.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/test_smart_completion.py b/tests/test_smart_completion.py index e69de29b..eec72abd 100644 --- a/tests/test_smart_completion.py +++ b/tests/test_smart_completion.py @@ -0,0 +1,61 @@ +import pytest +from prompt_toolkit.completion import Completion +from prompt_toolkit.document import Document + +tables = { + 'users': ['id', 'email', 'first_name', 'last_name'], + 'orders': ['id', 'ordered_date', 'status'] +} + +@pytest.fixture +def completer(): + + import pgcli.pgcompleter as pgcompleter + comp = pgcompleter.PGCompleter(smart_completion=True) + comp.extend_table_names(tables.keys()) + for t in tables: + comp.extend_column_names(t, tables[t]) + return comp + +@pytest.fixture +def complete_event(): + from mock import Mock + return Mock() + +def test_empty_string_completion(completer, complete_event): + text = '' + position = 0 + result = set( + completer.get_completions( + Document(text=text, cursor_position=position), + complete_event)) + assert set(map(Completion, completer.keywords)) == result + +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 set(result) == set([Completion(text='SELECT', start_position=-3)]) + +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 set(result) == set([Completion(text='MAX', start_position=-2)]) + +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 set(result) == set([ + 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)]) |