| ; |
| ; 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,py35,py36,py37,py27-{gcp,cython,lint,lint3},py35-{gcp,cython},py36-{gcp,cython},py37-{gcp,cython,lint},docs |
| toxworkdir = {toxinidir}/target/{env:ENV_NAME:.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 = |
| false |
| 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 --retries 10 {opts} {packages} |
| list_dependencies_command = {envbindir}/python {envbindir}/pip freeze |
| commands_pre = |
| python --version |
| pip --version |
| pip check |
| {toxinidir}/scripts/run_tox_cleanup.sh |
| commands_post = |
| {toxinidir}/scripts/run_tox_cleanup.sh |
| commands = false {envname} is misconfigured |
| |
| [testenv:py27] |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| python setup.py nosetests --ignore-files '.*py3\d?\.py$' {posargs} |
| |
| [testenv:py27-pytest] |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py35] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| python setup.py nosetests --ignore-files '.*py3[6-9]\.py$' {posargs} |
| |
| [testenv:py35-pytest] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py36] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| python setup.py nosetests --ignore-files '.*py3[7-9]\.py$' {posargs} |
| |
| [testenv:py36-pytest] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py37] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| python setup.py nosetests --ignore-files '.*py3[8-9]\.py$' {posargs} |
| |
| [testenv:py37-pytest] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [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 apache_beam/examples/complete/autocomplete_test.py |
| python setup.py nosetests --ignore-files '.*py3\d?\.py$' {posargs} |
| |
| [testenv:py27-cython-pytest] |
| # 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 apache_beam/examples/complete/autocomplete_test.py |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py35-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 = linux |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| python setup.py nosetests --ignore-files '.*py3[5-9]\.py$' {posargs} |
| |
| [testenv:py35-cython-pytest] |
| # 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 = linux |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py36-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 = linux |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| python setup.py nosetests --ignore-files '.*py3[7-9]\.py$' {posargs} |
| |
| [testenv:py36-cython-pytest] |
| # 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 = linux |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py37-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 = linux |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| python setup.py nosetests --ignore-files '.*py3[8-9]\.py$' {posargs} |
| |
| [testenv:py37-cython-pytest] |
| # 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 = linux |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py27-gcp] |
| extras = test,gcp |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| python setup.py nosetests --ignore-files '.*py3\d?\.py$' {posargs} |
| # Old and new Datastore client unit tests cannot be run in the same process |
| # due to conflicting protobuf modules. |
| # TODO(BEAM-4543): Remove these separate nosetests invocations once the |
| # googledatastore dependency is removed. |
| python setup.py nosetests {posargs} --tests apache_beam.io.gcp.datastore.v1 |
| python setup.py nosetests {posargs} --tests apache_beam.io.gcp.datastore.v1new |
| |
| [testenv:py27-gcp-pytest] |
| extras = test,gcp |
| commands = |
| python apache_beam/examples/complete/autocomplete_test.py |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py35-gcp] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| extras = test,gcp |
| commands = |
| python setup.py nosetests --ignore-files '.*py3[6-9]\.py$' {posargs} |
| |
| [testenv:py35-gcp-pytest] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| extras = test,gcp |
| commands = |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py36-gcp] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| extras = test,gcp |
| commands = |
| python setup.py nosetests --ignore-files '.*py3[7-9]\.py$' {posargs} |
| |
| [testenv:py36-gcp-pytest] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| extras = test,gcp |
| commands = |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py37-gcp] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| extras = test,gcp |
| commands = |
| python setup.py nosetests --ignore-files '.*py3[8-9]\.py$' {posargs} |
| |
| [testenv:py37-gcp-pytest] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| extras = test,gcp |
| commands = |
| {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}" |
| |
| [testenv:py27-lint] |
| # Checks for py2 syntax errors |
| deps = |
| flake8==3.5.0 |
| commands = |
| time {toxinidir}/scripts/run_mini_py2lint.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 |
| time {toxinidir}/scripts/run_pylint_2to3.sh |
| |
| [testenv:py37-lint] |
| deps = |
| astroid<2.4,>=2.3.0 |
| pycodestyle==2.3.1 |
| pylint==2.4.2 |
| future==0.16.0 |
| isort==4.2.15 |
| flake8==3.5.0 |
| commands = |
| pylint --version |
| time {toxinidir}/scripts/run_pylint.sh |
| |
| [testenv:docs] |
| extras = test,gcp,docs,interactive |
| deps = |
| Sphinx==1.6.5 |
| sphinx_rtd_theme==0.2.4 |
| commands = |
| 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 = |
| # 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 |
| |
| [testenv:py37-interactive] |
| setenv = |
| RUN_SKIPPED_PY3_TESTS=0 |
| extras = test,interactive |
| commands = |
| python setup.py nosetests --ignore-files '.*py3[8-9]\.py$' {posargs} |