summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmjith Ramanujam <amjith.r@gmail.com>2014-12-27 14:09:14 -0800
committerAmjith Ramanujam <amjith.r@gmail.com>2014-12-27 14:09:14 -0800
commit181348fd4ef76cc5833539cf1ef432830ef7b85e (patch)
treec9e218fb805578b78f5de4237cd41812388e46c3
parentd3415743d355ff8bc07813f93097926ca685bb84 (diff)
parent5b4644ba34cf5a979cbeb6124c7773eb670f358d (diff)
Merge pull request #6 from j-bennet/master
added functions to all completions; added naive completion tests
-rw-r--r--pgcli/pgcompleter.py2
-rw-r--r--tests/test_naive_completion.py44
2 files changed, 39 insertions, 7 deletions
diff --git a/pgcli/pgcompleter.py b/pgcli/pgcompleter.py
index c5c21fac..3bf537ed 100644
--- a/pgcli/pgcompleter.py
+++ b/pgcli/pgcompleter.py
@@ -36,7 +36,7 @@ class PGCompleter(Completer):
# This will create a defaultdict which is initialized with a list that has
# a '*' by default.
columns = defaultdict(lambda: ['*'])
- all_completions = set(keywords)
+ all_completions = set(keywords + functions)
def __init__(self, smart_completion=True):
super(self.__class__, self).__init__()
diff --git a/tests/test_naive_completion.py b/tests/test_naive_completion.py
index b5798aea..12710336 100644
--- a/tests/test_naive_completion.py
+++ b/tests/test_naive_completion.py
@@ -7,9 +7,41 @@ def completer():
import pgcli.pgcompleter as pgcompleter
return pgcompleter.PGCompleter(smart_completion=False)
-def test_empty_string_completion(completer):
- #print set(completer.get_completions(Document(text='')))
- #print set(map(Completion, completer.all_completions))
- #assert False
- #assert set(map(Completion, completer.keywords)) == set(completer.get_completions(Document(text='')))
- pass
+@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 result == set(map(Completion, completer.all_completions))
+
+def test_select_keyword_completion(completer, complete_event):
+ text = 'SEL'
+ position = len('SEL')
+ result = set(completer.get_completions(
+ Document(text=text, cursor_position=position),
+ complete_event))
+ assert result == set([Completion(text='SELECT', start_position=-3)])
+
+def test_function_name_completion(completer, complete_event):
+ text = 'SELECT MA'
+ position = len('SELECT MA')
+ result = set(completer.get_completions(
+ Document(text=text, cursor_position=position),
+ complete_event))
+ assert result == set([
+ Completion(text='MAX', start_position=-2),
+ Completion(text='MAXEXTENTS', start_position=-2)])
+
+def test_column_name_completion(completer, complete_event):
+ text = 'SELECT FROM users'
+ position = len('SELECT ')
+ result = set(completer.get_completions(
+ Document(text=text, cursor_position=position),
+ complete_event))
+ assert result == set(map(Completion, completer.all_completions))