-
Notifications
You must be signed in to change notification settings - Fork 690
Expand file tree
/
Copy pathtest_naive_completion.py
More file actions
102 lines (88 loc) · 4.36 KB
/
test_naive_completion.py
File metadata and controls
102 lines (88 loc) · 4.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import pytest
from prompt_toolkit.completion import Completion
from prompt_toolkit.document import Document
@pytest.fixture
def completer():
import mycli.sqlcompleter as sqlcompleter
return sqlcompleter.SQLCompleter(smart_completion=False)
@pytest.fixture
def complete_event():
from mock import Mock
return Mock()
def test_empty_string_completion(completer, complete_event):
text = ''
position = 0
result = list(completer.get_completions(
Document(text=text, cursor_position=position),
complete_event))
assert result == list(map(Completion, sorted(completer.all_completions)))
def test_select_keyword_completion(completer, complete_event):
text = 'SEL'
position = len('SEL')
result = list(completer.get_completions(
Document(text=text, cursor_position=position),
complete_event))
assert result == list([Completion(text='SELECT', start_position=-3)])
def test_function_name_completion(completer, complete_event):
text = 'SELECT MA'
position = len('SELECT MA')
result = list(completer.get_completions(
Document(text=text, cursor_position=position),
complete_event))
assert result == list([
Completion(text='MAKEDATE', start_position=-2),
Completion(text='MAKETIME', start_position=-2),
Completion(text='MAKE_SET', start_position=-2),
Completion(text='MASTER', start_position=-2),
Completion(text='MASTER_AUTO_POSITION', start_position=-2),
Completion(text='MASTER_BIND', start_position=-2),
Completion(text='MASTER_COMPRESSION_ALGORITHMS', start_position=-2),
Completion(text='MASTER_CONNECT_RETRY', start_position=-2),
Completion(text='MASTER_DELAY', start_position=-2),
Completion(text='MASTER_HEARTBEAT_PERIOD', start_position=-2),
Completion(text='MASTER_HOST', start_position=-2),
Completion(text='MASTER_LOG_FILE', start_position=-2),
Completion(text='MASTER_LOG_POS', start_position=-2),
Completion(text='MASTER_PASSWORD', start_position=-2),
Completion(text='MASTER_PORT', start_position=-2),
Completion(text='MASTER_POS_WAIT', start_position=-2),
Completion(text='MASTER_PUBLIC_KEY_PATH', start_position=-2),
Completion(text='MASTER_RETRY_COUNT', start_position=-2),
Completion(text='MASTER_SERVER_ID', start_position=-2),
Completion(text='MASTER_SSL', start_position=-2),
Completion(text='MASTER_SSL_CA', start_position=-2),
Completion(text='MASTER_SSL_CAPATH', start_position=-2),
Completion(text='MASTER_SSL_CERT', start_position=-2),
Completion(text='MASTER_SSL_CIPHER', start_position=-2),
Completion(text='MASTER_SSL_CRL', start_position=-2),
Completion(text='MASTER_SSL_CRLPATH', start_position=-2),
Completion(text='MASTER_SSL_KEY', start_position=-2),
Completion(text='MASTER_SSL_VERIFY_SERVER_CERT', start_position=-2),
Completion(text='MASTER_TLS_CIPHERSUITES', start_position=-2),
Completion(text='MASTER_TLS_VERSION', start_position=-2),
Completion(text='MASTER_USER', start_position=-2),
Completion(text='MASTER_ZSTD_COMPRESSION_LEVEL', start_position=-2),
Completion(text='MATCH', start_position=-2),
Completion(text='MAX', start_position=-2),
Completion(text='MAXVALUE', start_position=-2),
Completion(text='MAX_CONNECTIONS_PER_HOUR', start_position=-2),
Completion(text='MAX_QUERIES_PER_HOUR', start_position=-2),
Completion(text='MAX_ROWS', start_position=-2),
Completion(text='MAX_SIZE', start_position=-2),
Completion(text='MAX_UPDATES_PER_HOUR', start_position=-2),
Completion(text='MAX_USER_CONNECTIONS', start_position=-2)])
def test_column_name_completion(completer, complete_event):
text = 'SELECT FROM users'
position = len('SELECT ')
result = list(completer.get_completions(
Document(text=text, cursor_position=position),
complete_event))
assert result == list(map(Completion, sorted(completer.all_completions)))
def test_special_name_completion(completer, complete_event):
text = '\\'
position = len('\\')
result = set(completer.get_completions(
Document(text=text, cursor_position=position),
complete_event))
# Special commands will NOT be suggested during naive completion mode.
assert result == set()