diff options
author | Iryna Cherniavska <i.chernyavska@gmail.com> | 2014-12-27 14:52:13 -0800 |
---|---|---|
committer | Iryna Cherniavska <i.chernyavska@gmail.com> | 2014-12-28 14:57:51 -0800 |
commit | 799d4bc35bccdb64941bb91e5e506be98a1cbc03 (patch) | |
tree | 9233ee32e9eec35df157ed88861289d0028dcf67 | |
parent | 335e57215cecbd3ec7a053b958317c7aed364dfb (diff) |
Added tests for multiple column suggestion, dot and alias.
-rw-r--r-- | tests/test_smart_completion.py | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/tests/test_smart_completion.py b/tests/test_smart_completion.py index 9ea98975..8ec0925e 100644 --- a/tests/test_smart_completion.py +++ b/tests/test_smart_completion.py @@ -47,7 +47,34 @@ def test_function_name_completion(completer, complete_event): complete_event) assert set(result) == set([Completion(text='MAX', start_position=-2)]) +def test_suggested_column_names(completer, complete_event): + """ + Suggest column and function names when selecting from table + :param completer: + :param complete_event: + :return: + """ + text = 'SELECT from users' + position = len('SELECT ') + result = set(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)] + + map(Completion, completer.functions)) + def test_suggested_column_names_in_function(completer, complete_event): + """ + Suggest column and function names when selecting multiple + columns from table + :param completer: + :param complete_event: + :return: + """ text = 'SELECT MAX( from users' position = len('SELECT MAX(') result = completer.get_completions( @@ -61,6 +88,12 @@ def test_suggested_column_names_in_function(completer, complete_event): Completion(text='last_name', start_position=0)]) def test_suggested_column_names_with_dot(completer, complete_event): + """ + Suggest column names on table name and dot + :param completer: + :param complete_event: + :return: + """ text = 'SELECT users. from users' position = len('SELECT users.') result = set(completer.get_completions( @@ -74,6 +107,12 @@ def test_suggested_column_names_with_dot(completer, complete_event): Completion(text='last_name', start_position=0)]) def test_suggested_column_names_with_alias(completer, complete_event): + """ + Suggest column names on table alias and dot + :param completer: + :param complete_event: + :return: + """ text = 'SELECT u. from users u' position = len('SELECT u.') result = set(completer.get_completions( @@ -85,3 +124,64 @@ def test_suggested_column_names_with_alias(completer, complete_event): Completion(text='email', start_position=0), Completion(text='first_name', start_position=0), Completion(text='last_name', start_position=0)]) + +def test_suggested_multiple_column_names(completer, complete_event): + """ + Suggest column and function names when selecting multiple + columns from table + :param completer: + :param complete_event: + :return: + """ + text = 'SELECT id, from users u' + position = len('SELECT id, ') + result = set(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)] + + map(Completion, completer.functions)) + +def test_suggested_multiple_column_names_with_alias(completer, complete_event): + """ + Suggest column names on table alias and dot + when selecting multiple columns from table + :param completer: + :param complete_event: + :return: + """ + text = 'SELECT u.id, u. from users u' + position = len('SELECT u.id, u.') + result = set(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)]) + +def test_suggested_multiple_column_names_with_dot(completer, complete_event): + """ + Suggest column names on table names and dot + when selecting multiple columns from table + :param completer: + :param complete_event: + :return: + """ + text = 'SELECT users.id, users. from users u' + position = len('SELECT users.id, users.') + result = set(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)]) |