| # 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] |
| envlist = py37,py38,py39,linters |
| |
| [testenv] |
| deps = |
| coverage |
| mock |
| nose |
| pytest |
| setenv = |
| COVERAGE_FILE = test-reports/{envname}/.coverage |
| PYTEST_ADDOPTS = --junitxml=test-reports/{envname}/junit.xml -vv |
| commands = |
| coverage run --source iceberg --parallel-mode -m pytest {posargs} |
| coverage combine |
| coverage report -m |
| coverage html -d test-reports/{envname}/coverage-html |
| coverage xml -o test-reports/{envname}/coverage.xml |
| |
| [testenv:linters] |
| basepython = python3 |
| skip_install = true |
| deps = |
| . |
| {[testenv:flake8]deps} |
| {[testenv:bandit]deps} |
| {[testenv:mypy]deps} |
| commands = |
| {[testenv:flake8]commands} |
| {[testenv:bandit]commands} |
| {[testenv:mypy]commands} |
| |
| [testenv:flake8] |
| basepython = python3 |
| skip_install = true |
| deps = |
| flake8>=3.8.4 |
| flake8-import-order>=0.9 |
| flake8-bugbear==22.6.22 |
| commands = |
| flake8 iceberg setup.py tests |
| |
| [testenv:mypy] |
| basepython = python3 |
| skip_install = true |
| deps = |
| mypy |
| types-pytz |
| types-python-dateutil |
| commands = |
| mypy --ignore-missing-imports iceberg/ |
| |
| [testenv:bandit] |
| basepython = python3 |
| skip_install = true |
| deps = |
| bandit |
| commands = |
| bandit --ini tox.ini -r iceberg |
| |
| # [testenv:docs] |
| # basepython = python3 |
| # deps = |
| # -r docs/source/requirements.txt |
| # commands = |
| # sphinx-build -E -W -c docs/source/ -b html docs/source/ docs/build/html |
| # sphinx-build -E -W -c docs/source/ -b man docs/source/ docs/build/man |
| |
| # [testenv:serve-docs] |
| # basepython = python3 |
| # skip_install = true |
| # changedir = docs/build/html |
| # deps = |
| # commands = |
| # python -m http.server {posargs} |
| |
| [flake8] |
| ignore = E501,W503 |
| exclude = |
| *.egg-info, |
| *.pyc, |
| .cache, |
| .coverage.*, |
| .gradle, |
| .tox, |
| build, |
| dist, |
| htmlcov.* |
| max-complexity = 10 |
| import-order-style = google |
| application-import-names = flake8 |
| |
| [pytest] |
| norecursedirs=.* |
| |
| [gh-actions] |
| python = |
| 3.7: py37 |
| 3.8: py38, linters |
| 3.9: py39 |