Skip to content

Commit b862add

Browse files
authored
Fix tests for Jedi 0.15.2 (#723)
1 parent 48eedea commit b862add

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ install:
2121
- "%PYTHON%/python.exe -m pip install .[all] .[test]"
2222

2323
test_script:
24-
- "%PYTHON%/Scripts/pytest.exe test/"
24+
- "%PYTHON%/Scripts/pytest.exe -v test/"
2525

2626
# on_finish:
2727
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))

test/plugins/test_completion.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
import sys
55

66
from test.test_utils import MockWorkspace
7-
import jedi
87
import pytest
98

109
from pyls import uris, lsp
10+
from pyls._utils import JEDI_VERSION
1111
from pyls.workspace import Document
1212
from pyls.plugins.jedi_completion import pyls_completions as pyls_jedi_completions
1313
from pyls.plugins.rope_completion import pyls_completions as pyls_rope_completions
@@ -124,20 +124,25 @@ def test_jedi_method_completion(config):
124124
assert everyone_method['insertText'] == 'everyone'
125125

126126

127-
@pytest.mark.skipif(PY2 or LooseVersion(jedi.__version__) >= LooseVersion('0.16.0'),
128-
reason='Test only with Jedi <0.16 in Python 3. Check for a fix in future Jedi versions')
127+
@pytest.mark.skipif(PY2 or (sys.platform.startswith('linux') and os.environ.get('CI') is not None),
128+
reason="Test in Python 3 and not on CIs on Linux because wheels don't work on them.")
129129
def test_pyqt_completion(config):
130130
# Over 'QA' in 'from PyQt5.QtWidgets import QApplication'
131131
doc_pyqt = "from PyQt5.QtWidgets import QA"
132132
com_position = {'line': 0, 'character': len(doc_pyqt)}
133133
doc = Document(DOC_URI, doc_pyqt)
134+
completions = pyls_jedi_completions(config, doc, com_position)
134135

135-
# Test we don't throw importing elements from PyQt5
136-
assert pyls_jedi_completions(config, doc, com_position) is None
136+
# Test we don't throw an error for Jedi < 0.15.2 and get completions
137+
# for Jedi 0.15.2+
138+
if LooseVersion(JEDI_VERSION) < LooseVersion('0.15.2'):
139+
assert completions is None
140+
else:
141+
assert completions is not None
137142

138143

139-
@pytest.mark.skipif(LooseVersion('0.15.0') <= LooseVersion(jedi.__version__) < LooseVersion('0.16.0'),
140-
reason='This test fails with Jedi 0.15')
144+
@pytest.mark.skipif(LooseVersion('0.15.0') <= LooseVersion(JEDI_VERSION) < LooseVersion('0.15.2'),
145+
reason='This test fails with Jedi 0.15.0 and 0.15.1')
141146
def test_numpy_completions(config):
142147
doc_numpy = "import numpy as np; np."
143148
com_position = {'line': 0, 'character': len(doc_numpy)}
@@ -148,8 +153,8 @@ def test_numpy_completions(config):
148153
assert any(['array' in i['label'] for i in items])
149154

150155

151-
@pytest.mark.skipif(LooseVersion('0.15.0') <= LooseVersion(jedi.__version__) < LooseVersion('0.16.0'),
152-
reason='This test fails with Jedi 0.15')
156+
@pytest.mark.skipif(LooseVersion('0.15.0') <= LooseVersion(JEDI_VERSION) < LooseVersion('0.15.2'),
157+
reason='This test fails with Jedi 0.15.0 and 0.15.1')
153158
def test_pandas_completions(config):
154159
doc_pandas = "import pandas as pd; pd."
155160
com_position = {'line': 0, 'character': len(doc_pandas)}
@@ -170,6 +175,8 @@ def test_matplotlib_completions(config):
170175
assert any(['plot' in i['label'] for i in items])
171176

172177

178+
@pytest.mark.skipif(LooseVersion(JEDI_VERSION) < LooseVersion('0.15.2'),
179+
reason='This test fails with Jedi 0.15.1 or less')
173180
def test_snippets_completion(config):
174181
doc_snippets = 'from collections import defaultdict \na=defaultdict'
175182
com_position = {'line': 0, 'character': 35}
@@ -182,7 +189,7 @@ def test_snippets_completion(config):
182189

183190
com_position = {'line': 1, 'character': len(doc_snippets)}
184191
completions = pyls_jedi_completions(config, doc, com_position)
185-
out = 'defaultdict(${1:default_factory}, ${2:iterable}, ${3:kwargs})$0'
192+
out = 'defaultdict(${1:kwargs})$0'
186193
assert completions[0]['insertText'] == out
187194

188195

0 commit comments

Comments
 (0)