summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorIryna Cherniavska <icherniavska@cars.com>2014-12-23 15:01:55 -0800
committerAmjith Ramanujam <amjith@newrelic.com>2014-12-23 23:59:14 -0800
commit6933b72cb9e8a6440878a196f3912f7b91d9723e (patch)
tree51bd9c61e4e55ec10738d3e6087040930474ab9b /tests
parent6a9b224834d1a523b03ce1e7c6ff4fa3ccea2583 (diff)
added some smart completion tests
Diffstat (limited to 'tests')
-rw-r--r--tests/test_smart_completion.py61
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)])