blob: bf9175f972b7b0399e2b9a8843bd633f24b4835f [file] [log] [blame]
;
; Licensed to the Apache Software Foundation (ASF) under one or more
; contributor license agreements. See the NOTICE file distributed with
; this work for additional information regarding copyright ownership.
; The ASF licenses this file to You under the Apache License, Version 2.0
; (the "License"); you may not use this file except in compliance with
; the License. You may obtain a copy of the License at
;
; http://www.apache.org/licenses/LICENSE-2.0
;
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
;
[tox]
# new environments will be excluded by default unless explicitly added to envlist.
envlist = py27,py3,py27-{gcp,cython,lint,lint3},py3-lint,docs
toxworkdir = {toxinidir}/target/.tox
[pycodestyle]
# Disable all errors and warnings except for the ones related to blank lines.
# pylint does not check the number of blank lines.
select = E3
# Shared environment options.
[testenv]
# Set [] options for pip installation of apache-beam tarball.
extras = test
# Don't warn that these commands aren't installed.
whitelist_externals =
find
time
deps =
cython: cython==0.28.1
future==0.16.0
# These 2 magic command overrides are required for Jenkins builds.
# Otherwise we get "OSError: [Errno 2] No such file or directory" errors.
# Source:
# https://github.com/tox-dev/tox/issues/123#issuecomment-284714629
install_command = {envbindir}/python {envbindir}/pip install {opts} {packages}
list_dependencies_command = {envbindir}/python {envbindir}/pip freeze
[testenv:py27]
commands =
python --version
pip --version
{toxinidir}/scripts/run_tox_cleanup.sh
python apache_beam/examples/complete/autocomplete_test.py
python setup.py nosetests
{toxinidir}/scripts/run_tox_cleanup.sh
[testenv:py3]
setenv =
BEAM_EXPERIMENTAL_PY3=1
modules =
apache_beam.typehints,apache_beam.coders,apache_beam.options,apache_beam.tools,apache_beam.utils,apache_beam.internal,apache_beam.metrics,apache_beam.portability,apache_beam.pipeline_test,apache_beam.pvalue_test,apache_beam.runners
commands =
python --version
pip --version
{toxinidir}/scripts/run_tox_cleanup.sh
python setup.py nosetests --tests {[testenv:py3]modules}
{toxinidir}/scripts/run_tox_cleanup.sh
[testenv:py27-cython]
# cython tests are only expected to work in linux (2.x and 3.x)
# If we want to add other platforms in the future, it should be:
# `platform = linux2|darwin|...`
# See https://docs.python.org/2/library/sys.html#sys.platform for platform codes
platform = linux2
commands =
python --version
pip --version
{toxinidir}/scripts/run_tox_cleanup.sh
python apache_beam/examples/complete/autocomplete_test.py
python setup.py nosetests
{toxinidir}/scripts/run_tox_cleanup.sh
[testenv:py27-gcp]
extras = test,gcp
commands =
python --version
pip --version
{toxinidir}/scripts/run_tox_cleanup.sh
python apache_beam/examples/complete/autocomplete_test.py
python setup.py nosetests
{toxinidir}/scripts/run_tox_cleanup.sh
[testenv:py27-lint]
deps =
pycodestyle==2.3.1
pylint==1.9.3
future==0.16.0
isort==4.2.15
flake8==3.5.0
commands =
pylint --version
pip --version
{toxinidir}/scripts/run_tox_cleanup.sh
time {toxinidir}/scripts/run_pylint.sh
[testenv:py27-lint3]
# Checks for py2/3 compatibility issues
deps =
pycodestyle==2.3.1
pylint==1.9.3
future==0.16.0
isort==4.2.15
flake8==3.5.0
commands =
pylint --version
pip --version
{toxinidir}/scripts/run_tox_cleanup.sh
time {toxinidir}/scripts/run_pylint_2to3.sh
[testenv:py3-lint]
deps =
pycodestyle==2.3.1
pylint==2.1.1
future==0.16.0
isort==4.2.15
flake8==3.5.0
setenv =
BEAM_EXPERIMENTAL_PY3=1
commands =
pylint --version
pip --version
{toxinidir}/scripts/run_tox_cleanup.sh
time {toxinidir}/scripts/run_mini_py3lint.sh
[testenv:docs]
extras = test,gcp,docs
deps =
Sphinx==1.6.5
sphinx_rtd_theme==0.2.4
commands =
python --version
pip --version
time {toxinidir}/scripts/generate_pydoc.sh
[testenv:cover]
# This is not included in envlist which is defined in [tox].
deps =
coverage==4.4.1
commands =
python --version
pip --version
{toxinidir}/scripts/run_tox_cleanup.sh
# Clean up previously collected data.
coverage erase
coverage run setup.py test
# Print coverage report to STDOUT
coverage report --skip-covered
# Generate report in xml format
coverage xml