Skip to content

Commit f619d3a

Browse files
authored
Add completion tests for several libraries of the Scientific Python stack (#682)
1 parent 5850ac0 commit f619d3a

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@
6565
'pylint': ['pylint'],
6666
'rope': ['rope>0.10.5'],
6767
'yapf': ['yapf'],
68-
'test': ['versioneer', 'pylint', 'pytest', 'mock', 'pytest-cov', 'coverage'],
68+
'test': ['versioneer', 'pylint', 'pytest', 'mock', 'pytest-cov',
69+
'coverage', 'numpy', 'pandas', 'matplotlib'],
6970
},
7071

7172
# To provide executable scripts, use entry points in preference to the

test/plugins/test_completion.py

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def test_rope_import_completion(config, workspace):
4646

4747

4848
@pytest.mark.skipif(LooseVersion(jedi.__version__) < LooseVersion('0.14.0'),
49-
reason='This test fails with previous versions of jedi')
49+
reason='This test fails with previous versions of Jedi')
5050
def test_jedi_completion(config):
5151
# Over 'i' in os.path.isabs(...)
5252
com_position = {'line': 1, 'character': 15}
@@ -118,3 +118,37 @@ def test_jedi_method_completion(config):
118118

119119
assert 'insertTextFormat' not in everyone_method
120120
assert everyone_method['insertText'] == 'everyone'
121+
122+
123+
@pytest.mark.skipif(LooseVersion('0.15.0') <= LooseVersion(jedi.__version__) < LooseVersion('0.16.0'),
124+
reason='This test fails with Jedi 0.15')
125+
def test_numpy_completions(config):
126+
doc_numpy = "import numpy as np; np."
127+
com_position = {'line': 0, 'character': len(doc_numpy)}
128+
doc = Document(DOC_URI, doc_numpy)
129+
items = pyls_jedi_completions(config, doc, com_position)
130+
131+
assert items
132+
assert any(['array' in i['label'] for i in items])
133+
134+
135+
@pytest.mark.skipif(LooseVersion('0.15.0') <= LooseVersion(jedi.__version__) < LooseVersion('0.16.0'),
136+
reason='This test fails with Jedi 0.15')
137+
def test_pandas_completions(config):
138+
doc_pandas = "import pandas as pd; pd."
139+
com_position = {'line': 0, 'character': len(doc_pandas)}
140+
doc = Document(DOC_URI, doc_pandas)
141+
items = pyls_jedi_completions(config, doc, com_position)
142+
143+
assert items
144+
assert any(['DataFrame' in i['label'] for i in items])
145+
146+
147+
def test_matplotlib_completions(config):
148+
doc_mpl = "import matplotlib.pyplot as plt; plt."
149+
com_position = {'line': 0, 'character': len(doc_mpl)}
150+
doc = Document(DOC_URI, doc_mpl)
151+
items = pyls_jedi_completions(config, doc, com_position)
152+
153+
assert items
154+
assert any(['plot' in i['label'] for i in items])

0 commit comments

Comments
 (0)