Add JEDI_TEST_ENVIRONMENT_EXECUTABLE for AppVeyor

This commit is contained in:
micbou
2018-03-24 21:47:32 +01:00
committed by Dave Halter
parent e8b301ebf9
commit bf57fa16fc
6 changed files with 97 additions and 50 deletions

View File

@@ -8,11 +8,11 @@ python:
- 3.6 - 3.6
env: env:
- JEDI_TEST_ENVIRONMENT=/opt/python/2.7/bin/python - JEDI_TEST_ENVIRONMENT=27
- JEDI_TEST_ENVIRONMENT=/opt/python/3.3/bin/python - JEDI_TEST_ENVIRONMENT=33
- JEDI_TEST_ENVIRONMENT=/opt/python/3.4/bin/python - JEDI_TEST_ENVIRONMENT=34
- JEDI_TEST_ENVIRONMENT=/opt/python/3.5/bin/python - JEDI_TEST_ENVIRONMENT=35
- JEDI_TEST_ENVIRONMENT=/opt/python/3.6/bin/python - JEDI_TEST_ENVIRONMENT=36
matrix: matrix:
allow_failures: allow_failures:
@@ -20,13 +20,13 @@ matrix:
- env: TOXENV=sith - env: TOXENV=sith
- env: - env:
- TOXENV=cov - TOXENV=cov
- JEDI_TEST_ENVIRONMENT=/opt/python/3.6/bin/python - JEDI_TEST_ENVIRONMENT=36
- python: 3.7-dev - python: 3.7-dev
include: include:
- python: 3.6 - python: 3.6
env: env:
- TOXENV=cov - TOXENV=cov
- JEDI_TEST_ENVIRONMENT=/opt/python/3.6/bin/python - JEDI_TEST_ENVIRONMENT=36
- python: 3.6 - python: 3.6
env: TOXENV=sith env: TOXENV=sith
# For now ignore pypy, there are so many issues that we don't really need # For now ignore pypy, there are so many issues that we don't really need
@@ -35,6 +35,13 @@ matrix:
- python: "3.7-dev" - python: "3.7-dev"
before_install: before_install:
- ./travis_install.sh - ./travis_install.sh
# Need to add the path to the Python versions in the end. This might add
# something twice, but it doesn't really matter, because they are appended.
- export PATH=$PATH:/opt/python/3.3/bin
- export PATH=$PATH:/opt/python/3.5/bin
# 3.6 was not installed manually, but already is on the system. However
# it's not on path (unless 3.6 is selected).
- export PATH=$PATH:/opt/python/3.6/bin
install: install:
- pip install --quiet tox-travis - pip install --quiet tox-travis
script: script:

View File

@@ -2,83 +2,83 @@ environment:
matrix: matrix:
- TOXENV: py27 - TOXENV: py27
PYTHON_PATH: C:\Python27 PYTHON_PATH: C:\Python27
JEDI_TEST_ENVIRONMENT: C:\Python27\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python27\python.exe
- TOXENV: py27 - TOXENV: py27
PYTHON_PATH: C:\Python27 PYTHON_PATH: C:\Python27
JEDI_TEST_ENVIRONMENT: C:\Python33\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python33\python.exe
- TOXENV: py27 - TOXENV: py27
PYTHON_PATH: C:\Python27 PYTHON_PATH: C:\Python27
JEDI_TEST_ENVIRONMENT: C:\Python34\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python34\python.exe
- TOXENV: py27 - TOXENV: py27
PYTHON_PATH: C:\Python27 PYTHON_PATH: C:\Python27
JEDI_TEST_ENVIRONMENT: C:\Python35\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python35\python.exe
- TOXENV: py27 - TOXENV: py27
PYTHON_PATH: C:\Python27 PYTHON_PATH: C:\Python27
JEDI_TEST_ENVIRONMENT: C:\Python36\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python36\python.exe
- TOXENV: py33 - TOXENV: py33
PYTHON_PATH: C:\Python33 PYTHON_PATH: C:\Python33
JEDI_TEST_ENVIRONMENT: C:\Python27\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python27\python.exe
- TOXENV: py33 - TOXENV: py33
PYTHON_PATH: C:\Python33 PYTHON_PATH: C:\Python33
JEDI_TEST_ENVIRONMENT: C:\Python33\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python33\python.exe
- TOXENV: py33 - TOXENV: py33
PYTHON_PATH: C:\Python33 PYTHON_PATH: C:\Python33
JEDI_TEST_ENVIRONMENT: C:\Python34\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python34\python.exe
- TOXENV: py33 - TOXENV: py33
PYTHON_PATH: C:\Python33 PYTHON_PATH: C:\Python33
JEDI_TEST_ENVIRONMENT: C:\Python35\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python35\python.exe
- TOXENV: py33 - TOXENV: py33
PYTHON_PATH: C:\Python33 PYTHON_PATH: C:\Python33
JEDI_TEST_ENVIRONMENT: C:\Python36\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python36\python.exe
- TOXENV: py34 - TOXENV: py34
PYTHON_PATH: C:\Python34 PYTHON_PATH: C:\Python34
JEDI_TEST_ENVIRONMENT: C:\Python27\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python27\python.exe
- TOXENV: py34 - TOXENV: py34
PYTHON_PATH: C:\Python34 PYTHON_PATH: C:\Python34
JEDI_TEST_ENVIRONMENT: C:\Python33\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python33\python.exe
- TOXENV: py34 - TOXENV: py34
PYTHON_PATH: C:\Python34 PYTHON_PATH: C:\Python34
JEDI_TEST_ENVIRONMENT: C:\Python34\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python34\python.exe
- TOXENV: py34 - TOXENV: py34
PYTHON_PATH: C:\Python34 PYTHON_PATH: C:\Python34
JEDI_TEST_ENVIRONMENT: C:\Python35\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python35\python.exe
- TOXENV: py34 - TOXENV: py34
PYTHON_PATH: C:\Python34 PYTHON_PATH: C:\Python34
JEDI_TEST_ENVIRONMENT: C:\Python36\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python36\python.exe
- TOXENV: py35 - TOXENV: py35
PYTHON_PATH: C:\Python35 PYTHON_PATH: C:\Python35
JEDI_TEST_ENVIRONMENT: C:\Python27\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python27\python.exe
- TOXENV: py35 - TOXENV: py35
PYTHON_PATH: C:\Python35 PYTHON_PATH: C:\Python35
JEDI_TEST_ENVIRONMENT: C:\Python33\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python33\python.exe
- TOXENV: py35 - TOXENV: py35
PYTHON_PATH: C:\Python35 PYTHON_PATH: C:\Python35
JEDI_TEST_ENVIRONMENT: C:\Python34\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python34\python.exe
- TOXENV: py35 - TOXENV: py35
PYTHON_PATH: C:\Python35 PYTHON_PATH: C:\Python35
JEDI_TEST_ENVIRONMENT: C:\Python35\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python35\python.exe
- TOXENV: py35 - TOXENV: py35
PYTHON_PATH: C:\Python35 PYTHON_PATH: C:\Python35
JEDI_TEST_ENVIRONMENT: C:\Python36\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python36\python.exe
- TOXENV: py36 - TOXENV: py36
PYTHON_PATH: C:\Python36 PYTHON_PATH: C:\Python36
JEDI_TEST_ENVIRONMENT: C:\Python27\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python27\python.exe
- TOXENV: py36 - TOXENV: py36
PYTHON_PATH: C:\Python36 PYTHON_PATH: C:\Python36
JEDI_TEST_ENVIRONMENT: C:\Python33\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python33\python.exe
- TOXENV: py36 - TOXENV: py36
PYTHON_PATH: C:\Python36 PYTHON_PATH: C:\Python36
JEDI_TEST_ENVIRONMENT: C:\Python34\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python34\python.exe
- TOXENV: py36 - TOXENV: py36
PYTHON_PATH: C:\Python36 PYTHON_PATH: C:\Python36
JEDI_TEST_ENVIRONMENT: C:\Python35\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python35\python.exe
- TOXENV: py36 - TOXENV: py36
PYTHON_PATH: C:\Python36 PYTHON_PATH: C:\Python36
JEDI_TEST_ENVIRONMENT: C:\Python36\python.exe JEDI_TEST_ENVIRONMENT_EXECUTABLE: C:\Python36\python.exe
install: install:
- set PATH=%PYTHON_PATH%;%PYTHON_PATH%\Scripts;%PATH% - set PATH=%PYTHON_PATH%;%PYTHON_PATH%\Scripts;%PATH%
- pip install --disable-pip-version-check --user --upgrade pip - pip install --disable-pip-version-check --user --upgrade pip

View File

@@ -87,16 +87,18 @@ def clean_jedi_cache(request):
@pytest.fixture(scope='session') @pytest.fixture(scope='session')
def environment(request): def environment(request):
python = request.config.option.env python = os.environ.get('JEDI_TEST_ENVIRONMENT_EXECUTABLE')
if python is None: if python:
python = os.environ.get('JEDI_TEST_ENVIRONMENT', 'python') return get_python_environment(python)
environment = get_python_environment(python) version = request.config.option.env
version_info = environment.version_info if version is None:
if int(str(version_info.major) + str(version_info.minor)) == py_version: version = os.environ.get('JEDI_TEST_ENVIRONMENT', str(py_version))
return get_default_environment()
return environment if int(version) == py_version:
return get_default_environment()
return get_python_environment('python%s.%s' % tuple(version))
@pytest.fixture(scope='session') @pytest.fixture(scope='session')

View File

@@ -24,10 +24,23 @@ def test_find_python_environments():
assert parser_version[:2] == env.version_info[:2] assert parser_version[:2] == env.version_info[:2]
def test_version(): @pytest.mark.skipif("os.name == 'nt'")
env = Environment('some path', sys.executable) @pytest.mark.parametrize(
'version',
['2.7', '3.3', '3.4', '3.5', '3.6', '3.7']
)
def test_versions(version):
executable = 'python' + version
try:
env = Environment('some path', executable)
except InvalidPythonEnvironment:
if int(version.replace('.', '')) == py_version:
# At least the current version has to work
raise
return
sys_path = env.get_sys_path() sys_path = env.get_sys_path()
assert any(sys.prefix in p for p in sys_path) assert any(executable in p for p in sys_path)
def test_load_module(evaluator): def test_load_module(evaluator):

View File

@@ -14,6 +14,14 @@ setenv =
# https://github.com/tomchristie/django-rest-framework/issues/1957 # https://github.com/tomchristie/django-rest-framework/issues/1957
# tox corrupts __pycache__, solution from here: # tox corrupts __pycache__, solution from here:
PYTHONDONTWRITEBYTECODE=1 PYTHONDONTWRITEBYTECODE=1
# To test Jedi in different versions than the same Python version, set a
# different test environment.
env27: JEDI_TEST_ENVIRONMENT=27
env33: JEDI_TEST_ENVIRONMENT=33
env34: JEDI_TEST_ENVIRONMENT=34
env35: JEDI_TEST_ENVIRONMENT=35
env36: JEDI_TEST_ENVIRONMENT=36
env37: JEDI_TEST_ENVIRONMENT=37
commands = commands =
py.test {posargs:jedi test} py.test {posargs:jedi test}
[testenv:py27] [testenv:py27]

View File

@@ -1,13 +1,30 @@
#! /usr/bin/env bash #! /usr/bin/env bash
set -e set -e
# Check if the desired Python version already exists. if [[ $JEDI_TEST_ENVIRONMENT == "33" ]]; then
$JEDI_TEST_ENVIRONMENT --version && exit 0 || true VERSION=3.3
DOWNLOAD=1
fi
if [[ $JEDI_TEST_ENVIRONMENT == "35" ]]; then
VERSION=3.5
DOWNLOAD=1
fi
# Otherwise download and install. if [[ -z $VERSION ]]; then
VERSION=`expr "$JEDI_TEST_ENVIRONMENT" : '.*\([0-9]\.[0-9]\)'` echo "Environments should already be installed"
DOWNLOAD_NAME=python-$VERSION exit 0
wget https://s3.amazonaws.com/travis-python-archives/binaries/ubuntu/14.04/x86_64/$DOWNLOAD_NAME.tar.bz2 fi
sudo tar xjf $DOWNLOAD_NAME.tar.bz2 --directory /
PYTHON=python-$VERSION
# Check if the desired Python version already exists.
$PYTHON --version && exit 0 || true
if [[ $DOWNLOAD == 1 ]]; then
# Otherwise download and install.
DOWNLOAD_NAME=python-$VERSION
wget https://s3.amazonaws.com/travis-python-archives/binaries/ubuntu/14.04/x86_64/$DOWNLOAD_NAME.tar.bz2
sudo tar xjf $DOWNLOAD_NAME.tar.bz2 --directory /
fi
echo "Successfully installed environment." echo "Successfully installed environment."