Refactoring is not allowed for environments and the current version lower than 3.6

This commit is contained in:
Dave Halter
2020-02-27 23:24:23 +01:00
parent 4451d2fec7
commit 1f773d8e65
3 changed files with 14 additions and 7 deletions

View File

@@ -54,11 +54,7 @@ sys.setrecursionlimit(3000)
def no_py2_support(func):
# TODO remove when removing Python 2/3.5
def wrapper(self, *args, **kwargs):
if self._inference_state.grammar.version_info.major == 2:
raise NotImplementedError(
"Python 2 is deprecated and won't support this feature anymore"
)
if self._inference_state.grammar.version_info[:2] == (3, 5):
if self._inference_state.grammar.version_info < (3, 6) or sys.version_info < (3, 6):
raise NotImplementedError(
"No support for refactorings on Python 3.5"
)

View File

@@ -1,4 +1,5 @@
import os
import sys
from textwrap import dedent
import pytest
@@ -6,6 +7,12 @@ import pytest
import jedi
@pytest.fixture(autouse=True)
def skip_old_python(skip_pre_python36):
if sys.version_info < (3, 6):
pytest.skip()
@pytest.fixture()
def dir_with_content(tmpdir):
with open(os.path.join(tmpdir.strpath, 'modx.py'), 'w') as f:
@@ -13,7 +20,7 @@ def dir_with_content(tmpdir):
return tmpdir.strpath
def test_rename_mod(Script, dir_with_content, skip_pre_python36):
def test_rename_mod(Script, dir_with_content):
script = Script(
'import modx; modx\n',
path=os.path.join(dir_with_content, 'some_script.py'),
@@ -50,7 +57,7 @@ def test_rename_mod(Script, dir_with_content, skip_pre_python36):
''').format(dir=dir_with_content)
def test_rename_none_path(Script, skip_pre_python36):
def test_rename_none_path(Script):
refactoring = Script('foo', path=None).rename(new_name='bar')
with pytest.raises(jedi.RefactoringError, match='on a Script with path=None'):
refactoring.apply()

View File

@@ -1,4 +1,5 @@
import os
import sys
import pytest
@@ -62,6 +63,9 @@ def test_refactor(refactor_case, skip_pre_python36, environment):
:type refactor_case: :class:`.refactor.RefactoringCase`
"""
if sys.version_info < (3, 6):
pytest.skip()
if refactor_case.type == 'error':
with pytest.raises(RefactoringError) as e:
refactor_case.refactor(environment)