Skip to content

Instantly share code, notes, and snippets.

@obestwalter
Last active July 17, 2018 21:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save obestwalter/ba3199c5564c35348abacd11db1c3d4d to your computer and use it in GitHub Desktop.
Save obestwalter/ba3199c5564c35348abacd11db1c3d4d to your computer and use it in GitHub Desktop.
Running tox 3.1 parseconfig over a random collection of tox.inis grabbed from github
import logging
import os
from pathlib import Path
from tox.config import parseconfig
log = logging.getLogger("gh")
INI_PATH = Path(__file__).parent / "inis"
EXCLUDES = [
"python-package-skeleton",
"chatter",
"GUIK",
"all_in_one_reboot_script",
"pyscaffold",
"makeapp",
]
def resolve_configs():
for count, iniPath in enumerate(INI_PATH.iterdir(), start=1):
try:
parse(iniPath)
except Exception as e:
content = iniPath.read_text()
info = content.split(os.linesep)[0]
print(f"{iniPath} -> ({e}): {info}\n\n{content}\n\n{'*' * 80}\n\n")
log.info(f"checked {count} configs")
def parse(iniPath):
if iniPath.stem in EXCLUDES:
log.debug(f"[IGNORE] {iniPath}")
return
parseconfig(["-c", str(iniPath)])
def init():
logging.basicConfig(level=logging.INFO)
if __name__ == "__main__":
init()
resolve_configs()
import logging
from pathlib import Path
from typing import Iterable
import github
import requests
from github.ContentFile import ContentFile
log = logging.getLogger("gh")
TOKEN = (Path(__file__).parent / "token.txt").read_text().strip()
GH = github.MainClass.Github(TOKEN)
HERE = Path(__file__).parent
PATH_TO_INIS = HERE / "inis"
def main():
container = HERE / "inis"
container.mkdir(exist_ok=True)
results: Iterable[ContentFile] = GH.search_code(
"filename:tox.ini", sort="indexed", order="desc"
)
for result in results:
show_rate_limit_info()
response = requests.get(result.download_url)
path = (container / result.repository.name).with_suffix(".ini")
info = get_info(result)
ini = response.content.decode()
log.info(f"{info} -> {path}")
path.write_text(f"{info}\n{ini}")
def get_info(result: ContentFile):
return f";{result.repository.html_url} (repo modified: {result.last_modified})\n"
def show_rate_limit_info():
limit = GH.get_rate_limit()
print(f"{limit.rate.remaining} -> {limit.rate.reset}")
def init():
logging.basicConfig(level=logging.INFO)
PATH_TO_INIS.mkdir(exist_ok=True)
if __name__ == "__main__":
init()
main()
inis/tornado.ini -> (Conflicting basepython for environment 'py2-monotonic'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/tornadoweb/tornado (repo modified: Wed, 11 Jul 2018 01:46:11 GMT)
;https://github.com/tornadoweb/tornado (repo modified: Wed, 11 Jul 2018 01:46:11 GMT)
# Tox (https://tox.readthedocs.io) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the tornado
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.
#
# This configuration requires tox 1.8 or higher.
#
# Installation tips:
# When building pycurl on my macports-based setup, I need to either set the
# environment variable ARCHFLAGS='-arch x86_64' or use
# 'port install curl +universal' to get both 32- and 64-bit versions of
# libcurl.
[tox]
envlist =
# Basic configurations: Run the tests in both minimal installations
# and with all optional dependencies.
# (pypy3 doesn't have any optional deps yet)
{py27,pypy,py34,py35,py36,py37,pypy3},
{py27,pypy,py34,py35,py36,py37}-full,
# Also run the tests with each possible replacement of a default
# component. Run each test on both python 2 and 3 where possible.
# (Only one 2.x and one 3.x unless there are known differences).
# py2 and py3 are aliases for py27-full and py35-full.
# Alternate HTTP clients.
{py2,py3}-curl,
# Alternate IOLoops.
py2-select,
py2-full-twisted,
py2-twistedlayered,
# Alternate Resolvers.
{py2,py3}-full-caresresolver,
# Other configurations; see comments below.
py2-monotonic,
{py2,py3}-opt,
py3-{lang_c,lang_utf8},
py2-locale,
{py27,py3}-unittest2,
# Ensure the sphinx build has no errors or warnings
py3-sphinx-docs,
# Run the doctests via sphinx (which covers things not run
# in the regular test suite and vice versa)
py3-sphinx-doctest,
py3-lint
[testenv]
# Most of these are defaults, but if you specify any you can't fall back
# defaults for the others.
basepython =
py27: python2.7
py34: python3.4
py35: python3.5
py36: python3.6
py37: python3.7
pypy: pypy
pypy3: pypy3
py2: python2.7
py3: python3.7
deps =
# unittest2 doesn't add anything we need on 2.7+, but we should ensure that
# its existence doesn't break anything due to conditional imports.
py27-unittest2: unittest2
py3-unittest2: unittest2py3k
# cpython-only deps: pycurl installs but curl_httpclient doesn't work;
# twisted mostly works but is a bit flaky under pypy.
{py27,py34,py35,py36,py37}-full: pycurl
{py2,py3}: pycurl>=7.19.3.1
# twisted is cpython only.
{py27,py34,py35,py36,py37}-full: twisted
{py2,py3}: twisted
{py2,py3,py27,py34,py35,py36,py37}-full: pycares
# mock became standard in py33
{py2,py27,pypy,pypy3}-full: mock
# singledispatch became standard in py34.
{py2,py27,pypy}-full: singledispatch
py2-monotonic: monotonic
sphinx: sphinx
sphinx: sphinx_rtd_theme
lint: flake8
setenv =
# The extension is mandatory on cpython.
{py2,py27,py3,py34,py35,py36,py37}: TORNADO_EXTENSION=1
# In python 3, opening files in text mode uses a
# system-dependent encoding by default. Run the tests with "C"
# (ascii) and "utf-8" locales to ensure we don't have hidden
# dependencies on this setting.
lang_c: LANG=C
lang_utf8: LANG=en_US.utf-8
# tox's parser chokes if all the setenv entries are conditional.
DUMMY=dummy
{py2,py27,py3,py34,py35,py36,py37}-no-ext: TORNADO_EXTENSION=0
# All non-comment lines but the last must end in a backslash.
# Tox filters line-by-line based on the environment name.
commands =
python \
# py3*: -b turns on an extra warning when calling
# str(bytes), and -bb makes it an error.
{py3,py34,py35,py36,py37,pypy3}: -bb \
# Python's optimized mode disables the assert statement, so
# run the tests in this mode to ensure we haven't fallen into
# the trap of relying on an assertion's side effects or using
# them for things that should be runtime errors.
opt: -O \
-m tornado.test.runtests \
# Note that httpclient_test is always run with both client
# implementations; this flag controls which client all the
# other tests use.
curl: --httpclient=tornado.curl_httpclient.CurlAsyncHTTPClient \
poll: --ioloop=tornado.ioloop.PollIOLoop \
select: --ioloop=tornado.platform.select.SelectIOLoop \
twisted: --ioloop=tornado.platform.twisted.TwistedIOLoop \
twistedlayered: --ioloop=tornado.test.twisted_test.LayeredTwistedIOLoop --resolver=tornado.platform.twisted.TwistedResolver \
caresresolver: --resolver=tornado.platform.caresresolver.CaresResolver \
threadedresolver: --resolver=tornado.netutil.ThreadedResolver \
monotonic: --ioloop=tornado.ioloop.PollIOLoop --ioloop_time_monotonic \
# Test with a non-english locale to uncover str/bytes mixing issues.
locale: --locale=zh_TW \
{posargs:}
# python will import relative to the current working directory by default,
# so cd into the tox working directory to avoid picking up the working
# copy of the files (especially important for the speedups module).
changedir = {toxworkdir}
# tox 1.6 passes --pre to pip by default, which currently has problems
# installing pycurl and monotime (https://github.com/pypa/pip/issues/1405).
# Remove it (it's not a part of {opts}) to only install real releases.
install_command = pip install {opts} {packages}
[testenv:py3-sphinx-docs]
changedir = docs
# For some reason the extension fails to load in this configuration,
# but it's not really needed for docs anyway.
setenv = TORNADO_EXTENSION=0
commands =
sphinx-build -q -E -n -W -b html . {envtmpdir}/html
[testenv:py3-sphinx-doctest]
changedir = docs
setenv = TORNADO_EXTENSION=0
# No -W for doctests because that disallows tests with empty output.
commands =
sphinx-build -q -E -n -b doctest . {envtmpdir}/doctest
[testenv:py3-lint]
commands = flake8 {posargs:}
changedir = {toxinidir}
********************************************************************************
inis/storlets.ini -> (Conflicting basepython for environment 'py36'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/openstack/storlets (repo modified: Tue, 10 Jul 2018 08:38:52 GMT)
;https://github.com/openstack/storlets (repo modified: Tue, 10 Jul 2018 08:38:52 GMT)
[tox]
minversion = 1.6
envlist = py27,py35,pep8
skipsdist = True
[testenv]
usedevelop = True
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -U {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
PYTHONPATH={toxinidir}/StorletSamples/python:{envdir}
NOSE_WITH_COVERAGE=1
NOSE_COVER_BRANCHES=1
deps =
-r{toxinidir}/test-requirements.txt
git+git://github.com/openstack/swift.git
commands =
find . -type f -name "*.py[c|o]" -delete
find . -type d -name "__pycache__" -delete
python setup.py testr --slowest --testr-args='--concurrency 1 {posargs:tests.unit}'
whitelist_externals = bash
find
rm
[testenv:pep8python]
basepython = python3
commands =
flake8
flake8 --filename=* bin --exclude=bin/*.sh
[testenv:py35]
basepython = python3
commands =
nosetests -v \
tests/unit/gateway \
tests/unit/sbus \
tests/unit/tools
[testenv:py36]
basepython = python3
commands = {[testenv:py35]commands}
[testenv:func]
basepython = python2.7
deps =
-r{toxinidir}/test-requirements.txt
git+git://github.com/openstack/swift.git
setenv =
VIRTUAL_ENV={envdir}
STORLET_SAMPLE_PATH={toxinidir}/StorletSamples
CLUSTER_CONF_DIR={toxinidir}
commands = {toxinidir}/.functests jenkins
[testenv:venv]
basepython = python3
commands = {posargs}
[testenv:cover]
basepython = python3
commands = python setup.py testr --coverage --testr-args='{posargs}'
[testenv:docs]
basepython = python2.7
commands = python setup.py build_sphinx
[testenv:debug]
basepython = python3
commands = oslo_debug_helper {posargs}
[testenv:bashate]
basepython = python3
# Run bashate check for all bash scripts
# Ignores the following rules:
# E003: Indent not multiple of 4 (we prefer to use multiples of 2)
# E006: Line longer than 79 columns
commands =
bash -c "grep --recursive --binary-files=without-match \
--files-with-match '^.!.*\(ba\)\?sh$' \
--exclude-dir .tox \
--exclude-dir .git \
{toxinidir} | xargs bashate --error . --verbose --ignore=E003,E006"
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
# H301: one import per line
# H306: imports not in alphabetical order (time, os)
# H404: multi line docstring should start without a leading new line
# H405: multi line docstring summary not separated with an empty line
ignore = E123,E125,H301,H306,H404,H405
show-source = True
builtins = _
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build
[testenv:pep8]
basepython = python2.7
commands =
{[testenv:pep8python]commands}
{[testenv:bashate]commands}
passenv =
HOME
[testenv:releasenotes]
basepython = python3
commands = sphinx-build -a -W -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
********************************************************************************
inis/goal-tools.ini -> (Conflicting basepython for environment 'py35'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/openstack/goal-tools (repo modified: Tue, 10 Jul 2018 19:37:38 GMT)
;https://github.com/openstack/goal-tools (repo modified: Tue, 10 Jul 2018 19:37:38 GMT)
[tox]
minversion = 2.0
envlist = py35,pep8
[testenv]
basepython = python3
install_command = pip install {opts} {packages}
usedevelop = True
deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
setenv =
PYTHON=coverage run --source goal_tools --parallel-mode
passenv =
ZUUL_CACHE_DIR
commands =
stestr run {posargs}
stestr slowest
coverage combine
coverage report -m
[testenv:pep8]
deps =
flake8
commands =
flake8
[testenv:venv]
commands = {posargs}
[flake8]
show-source = True
enable-extensions = H203,H106
exclude = .tox,dist,doc,*.egg,build
********************************************************************************
inis/releases.ini -> (Conflicting basepython for environment 'py35'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/openstack/releases (repo modified: Tue, 10 Jul 2018 14:36:24 GMT)
;https://github.com/openstack/releases (repo modified: Tue, 10 Jul 2018 14:36:24 GMT)
[tox]
minversion = 1.6
envlist = py35,validate,pep8,bashate,docs
skipdist = True
[testenv]
usedevelop=True
passenv=
ZUUL_CACHE_DIR
HOME
install_command = pip install -U {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
PYTHONUNBUFFERED=1
LOGDIR={envdir}/log
TMPDIR={envdir}/tmp
PYTHON=coverage run --source openstack_releases --parallel-mode
basepython = python3
deps = -r{toxinidir}/test-requirements.txt
commands =
stestr run '{posargs}'
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report --show-missing
[testenv:validate]
deps =
yamllint==1.4.1
commands =
{toxinidir}/tools/tox-log-command.sh {toxinidir}/tools/run_yamllint.sh
{toxinidir}/tools/tox-log-command.sh check-schema {posargs}
{toxinidir}/tools/tox-log-command.sh validate-request {posargs}
[testenv:list-changes]
commands =
{toxinidir}/tools/tox-log-command.sh list-changes {posargs}
[testenv:pep8]
commands = flake8
[testenv:bashate]
deps = bashate
whitelist_externals = bash
commands = bash -c "find {toxinidir} \
-not \( -type d -name .?\* -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
-name \*.sh \
-print0 | xargs -0 bashate -v"
[testenv:aclmanager]
commands = python {toxinidir}/tools/aclmanager.py {posargs}
[testenv:venv]
deps = .[sphinxext]
commands = {posargs}
[testenv:history]
commands = {toxinidir}/tools/build_tag_history.sh {toxinidir}
[testenv:docs]
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
whereto {toxinidir}/doc/source/_extra/.htaccess {toxinidir}/doc/test/redirect-tests.txt
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
# E501 skipped because some of the code files include templates
# that end up quite wide
show-source = True
ignore = E123,E125,E501,H405
builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,release-tag-*
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files.
deps = bindep
commands = bindep test
********************************************************************************
inis/PyXenaValkyrie.ini -> (Conflicting basepython for environment 'py36'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/xenadevel/PyXenaValkyrie (repo modified: Wed, 11 Jul 2018 15:04:20 GMT)
;https://github.com/xenadevel/PyXenaValkyrie (repo modified: Wed, 11 Jul 2018 15:04:20 GMT)
[tox]
envlist = py27,py27_64,py36,py36_64,python2.7,python3.6
skip_missing_interpreters=True
[testenv]
basepython=
py27: C:\Python27\python.exe
py27_64: C:\Python27_64\python.exe
py36: C:\Python36\python.exe
py36_64: C:\Python36_64\python.exe
python2.7: /bin/python2.7
python3.6: /bin/python3.6
deps = -r{toxinidir}/requirements.txt
commands=py.test xenavalkyrie/test/test_*.py
********************************************************************************
inis/pydevp2p.ini -> (Conflicting basepython for environment 'pypy2-401'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/phucnguyenit/pydevp2p (repo modified: Mon, 02 Jul 2018 06:12:32 GMT)
;https://github.com/phucnguyenit/pydevp2p (repo modified: Mon, 02 Jul 2018 06:12:32 GMT)
[tox]
mintoxversion = 2.0
envlist = py27,pypy2-{261,401,500}
[testenv]
setenv =
PYTHONPATH = {toxinidir}:{toxinidir}/pydevp2p
passenv = HOME
commands = python setup.py test --addopts "{posargs:devp2p/tests}"
deps =
-r{toxinidir}/requirements.txt
[testenv:pypy2-261]
basepython = pypy2.7-2.6.1
[testenv:pypy2-401]
basepython = pypy2.7-4.0.1
[testenv:pypy2-500]
basepython = pypy2.7-5.0.0
********************************************************************************
inis/ansible-role-runit.ini -> (Conflicting basepython for environment 'py27-ansible24'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/infothrill/ansible-role-runit (repo modified: Thu, 12 Jul 2018 19:24:19 GMT)
;https://github.com/infothrill/ansible-role-runit (repo modified: Thu, 12 Jul 2018 19:24:19 GMT)
[tox]
minversion = 1.8
envlist = py{27}-ansible{24,25,26}
skipsdist = true
[testenv]
# ansible only supports python3 in versions >= 2.5
basepython = python2
passenv = *
deps =
-rrequirements.txt
ansible24: ansible>=2.4,<2.5
ansible25: ansible>=2.5,<2.6
ansible26: ansible>=2.6,<2.7
commands =
pip list
molecule --version
ansible --version
ansible-lint --version
./run_molecule.sh
[travis]
os =
linux: py{27}-ansible{24,25,26}
[travis:env]
ANSIBLE =
2.4: ansible24
2.5: ansible25
2.6: ansible26
********************************************************************************
inis/idexmedia.github.ini -> (Conflicting basepython for environment 'py35'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/idexmedia/idexmedia.github.io (repo modified: Wed, 27 Jun 2018 11:42:03 GMT)
;https://github.com/idexmedia/idexmedia.github.io (repo modified: Wed, 27 Jun 2018 11:42:03 GMT)
[tox]
envlist = py27, py35, py36
[testenv]
usedevelop = true
basepython =
python2.7
deps =
-rtest-requirements.txt
commands = py.test -v tests/ --doctest-modules --cov idex --cov-report term-missing
passenv =
TRAVIS
TRAVIS_BRANCH
TRAVIS_JOB_ID
[testenv:py36]
basepython =
python3.6
deps =
-rtest-requirements.txt
-rtest-requirements35.txt
commands =
py.test -v asynctests/ --doctest-modules --cov idex --cov-report term-missing
[testenv:flake8]
usedevelop = false
commands = flake8 idex/
deps = flake8
[travis]
python =
3.6: py36, flake8
[flake8]
exclude =
.git,
.tox,
build,
dist
ignore =
E501
E999
[pep8]
ignore =
E501
E999
********************************************************************************
inis/python-magnumclient.ini -> (Conflicting basepython for environment 'pypy'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/openstack/python-magnumclient (repo modified: Wed, 06 Jun 2018 21:58:18 GMT)
;https://github.com/openstack/python-magnumclient (repo modified: Wed, 06 Jun 2018 21:58:18 GMT)
[tox]
minversion = 1.6
envlist = py35,py27,pypy,pep8
skipsdist = True
[testenv]
usedevelop = True
install_command = pip install {opts} {packages}
whitelist_externals = find
setenv =
VIRTUAL_ENV={envdir}
PYTHONWARNINGS=default::DeprecationWarning
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
find . -type f -name "*.py[c|o]" -delete
python setup.py testr --slowest --testr-args='{posargs}'
[testenv:bandit]
basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
commands = bandit -r magnumclient -x tests -n5 -ll
[testenv:pypy]
basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
setuptools<3.2
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
[testenv:debug]
basepython = python3
commands = oslo_debug_helper -t magnumclient/tests {posargs}
[testenv:debug-py27]
basepython = python2.7
commands = oslo_debug_helper -t magnumclient/tests {posargs}
[testenv:debug-py35]
basepython = python3.5
commands = oslo_debug_helper -t magnumclient/tests {posargs}
[testenv:pep8]
basepython = python3
commands =
flake8
# Run security linter
bandit -r magnumclient -x tests -n5 -ll
[testenv:docs]
basepython = python3
deps = -r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -W -b html doc/source doc/build/html
[testenv:venv]
basepython = python3
commands = {posargs}
[testenv:cover]
basepython = python3
commands = {toxinidir}/tools/cover.sh {posargs}
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
show-source = True
ignore = E123,E125
builtins = _
exclude=.venv,.git,.tox,dist,doc,,*lib/python*,*egg,build
[hacking]
import_exceptions = magnumclient._i18n
[testenv:lower-constraints]
basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
********************************************************************************
inis/PyXenaManager.ini -> (Conflicting basepython for environment 'py36'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/xenadevel/PyXenaManager (repo modified: Wed, 11 Jul 2018 13:11:46 GMT)
;https://github.com/xenadevel/PyXenaManager (repo modified: Wed, 11 Jul 2018 13:11:46 GMT)
[tox]
envlist = py27,py27_64,py36,py36_64,python2.7,python3.6
skip_missing_interpreters=True
[testenv]
basepython=
py27: C:\Python27\python.exe
py27_64: C:\Python27_64\python.exe
py36: C:\Python36\python.exe
py36_64: C:\Python36_64\python.exe
python2.7: /bin/python2.7
python3.6: /bin/python3.6
deps = -r{toxinidir}/requirements.txt
commands=py.test xenamanager/test/test_*.py
********************************************************************************
inis/requirements.ini -> (Conflicting basepython for environment 'py27'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/openstack/requirements (repo modified: Thu, 12 Jul 2018 14:29:15 GMT)
;https://github.com/openstack/requirements (repo modified: Thu, 12 Jul 2018 14:29:15 GMT)
[tox]
minversion = 1.6
skipsdist = True
envlist = validate,py27,pep8,pip-install
[testenv]
basepython = python3
usedevelop = True
install_command = pip install -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
stestr run {posargs}
[testenv:py27-check-uc]
basepython = python2.7
install_command = pip install -U {opts} -c {toxinidir}/upper-constraints.txt {packages}
deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
[testenv:py35-check-uc]
basepython = python3.5
install_command = pip install -U {opts} -c {toxinidir}/upper-constraints.txt {packages}
deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
[testenv:py36-check-uc]
basepython = python3.6
install_command = pip install -U {opts} -c {toxinidir}/upper-constraints.txt {packages}
deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
[testenv:venv]
commands = {posargs}
[testenv:update]
commands = update-requirements {posargs}
[testenv:generate]
commands = generate-constraints {posargs}
[testenv:validate]
commands =
validate-constraints {toxinidir}/global-requirements.txt {toxinidir}/upper-constraints.txt {toxinidir}/blacklist.txt
[testenv:validate-projects]
commands = validate-projects {toxinidir}/projects.txt
# TODO remove once zuul reconfigured to run linters on gate
[testenv:pep8]
deps = {[testenv:linters]deps}
whitelist_externals = {[testenv:linters]whitelist_externals}
commands = {[testenv:linters]commands}
[testenv:linters]
deps =
hacking>=1.0.0
bashate>=0.5.1
whitelist_externals = bash
basepython = python3
commands =
flake8
bash -c "find {toxinidir}/tools \
-type f \
-name \*.sh \
-print0 | xargs -0 bashate -v -iE006,E010"
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files, and develop mode disabled
# explicitly to avoid unnecessarily installing the checked-out repo too (this
# further relies on "tox.skipsdist = True" above).
deps = bindep
commands = bindep test
usedevelop = False
[testenv:docs]
commands = python setup.py build_sphinx
[testenv:pip-install]
recreate = True
deps = .
install_command = pip install {opts} {packages}
commands = python {toxinidir}/tools/check-install.py
[testenv:py34]
basepython = python3.4
[testenv:py35]
basepython = python3.5
[testenv:py36]
basepython = python3.6
[testenv:requirements-check]
basepython = python3
deps = -r{toxinidir}/requirements.txt
commands =
{toxinidir}/playbooks/files/project-requirements-change.py --local {posargs}
[testenv:babel]
# Use the local upper-constraints.txt file
deps = Babel
install_command = pip install -c upper-constraints.txt {opts} {packages}
commands = {toxinidir}/tools/babel-test.sh
[flake8]
exclude = .venv,.git,.tox,dist,doc,*egg,build
********************************************************************************
inis/molecule-bugreport.ini -> (Conflicting basepython for environment 'py27-ansible24'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/infothrill/molecule-bugreport (repo modified: Sat, 14 Jul 2018 06:21:31 GMT)
;https://github.com/infothrill/molecule-bugreport (repo modified: Sat, 14 Jul 2018 06:21:31 GMT)
[tox]
minversion = 1.8
envlist = py{27}-ansible{24,25,26}
skipsdist = true
[testenv]
# ansible only supports python3 in versions >= 2.5
basepython = python2
passenv = *
deps =
-rrequirements.txt
ansible24: ansible>=2.4,<2.5
ansible24: docker==3.4.1
ansible25: ansible>=2.5,<2.6
ansible25: docker==3.4.1
ansible26: ansible>=2.6,<2.7
ansible26: docker==3.4.1
commands =
pip list
molecule --version
ansible --version
ansible-lint --version
molecule test
********************************************************************************
inis/nginx_aws_cognito.ini -> (Conflicting basepython for environment 'py36'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/gchiesa/nginx_aws_cognito (repo modified: Sat, 14 Jul 2018 15:05:19 GMT)
;https://github.com/gchiesa/nginx_aws_cognito (repo modified: Sat, 14 Jul 2018 15:05:19 GMT)
[tox]
;envlist = py36, flake8
envlist = py36
tox_pyenv_fallback=False
[travis]
python =
3.6: py36
3.5: py35
3.4: py34
2.7: py27
[testenv:flake8]
basepython = python
deps = flake8
commands = flake8 nginx_aws_cognito
[testenv]
basepython = python
setenv =
PYTHONPATH = {toxinidir}
deps =
-r{toxinidir}/requirements_dev.txt
-r{toxinidir}/requirements.txt
; If you want to make tox run the tests with the same versions, create a
; requirements.txt with the pinned versions and uncomment the following line:
; -r{toxinidir}/requirements.txt
install_command = pip install --upgrade {packages}
commands =
pip install -U pip
py.test --basetemp={envtmpdir} --html=report.html --self-contained-html
********************************************************************************
inis/greenstack.ini -> (Conflicting basepython for environment 'x-py27'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/tbodt/greenstack (repo modified: Fri, 09 Sep 2016 05:44:01 GMT)
;https://github.com/tbodt/greenstack (repo modified: Fri, 09 Sep 2016 05:44:01 GMT)
[testenv]
commands={envpython} run-tests.py -nq
sitepackages=False
# this is 32 bit only
[testenv:x-py25]
basepython=/usr/bin/python2.5
# test both 32 bit and 64 bit on OS X
[testenv:x-py26]
commands=/usr/bin/arch -i386 {envpython} run-tests.py -qn
/usr/bin/arch -x86_64 {envpython} run-tests.py -qn
basepython=/usr/bin/python2.6
[testenv:x-py27]
commands=/usr/bin/arch -i386 {envpython} run-tests.py -qn
/usr/bin/arch -x86_64 {envpython} run-tests.py -qn
basepython=/usr/bin/python2.7
# test with specific gcc version on OS X
[testenv:x-py26-gcc40]
commands=/usr/bin/arch -i386 {envpython} run-tests.py -qn
/usr/bin/arch -x86_64 {envpython} run-tests.py -qn
basepython=/usr/bin/python2.6
setenv=
CC=gcc-4.0
[testenv:x-py26-gcc42]
commands=/usr/bin/arch -i386 {envpython} run-tests.py -qn
/usr/bin/arch -x86_64 {envpython} run-tests.py -qn
basepython=/usr/bin/python2.6
setenv= CC=gcc-4.2
[testenv:docs]
deps=docutils
sphinx
commands=make html
changedir={toxinidir}/doc
********************************************************************************
inis/dyndns.ini -> (Conflicting basepython for environment 'py3'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/Josef-Friedrich/dyndns (repo modified: Sat, 07 Jul 2018 17:59:51 GMT)
;https://github.com/Josef-Friedrich/dyndns (repo modified: Sat, 07 Jul 2018 17:59:51 GMT)
[tox]
envlist = py3, docs, flake8
[testenv]
basepython = python3.6
deps =
beautifulsoup4
nose
commands = nosetests
[testenv:docs]
basepython = python3.6
deps =
sphinx
sphinx_rtd_theme
sphinx_argparse
commands =
./_generate_readme.py
sphinx-build -W -q -b html doc/source {envtmpdir}/html
[testenv:flake8]
basepython = python3.6
deps = flake8
commands = flake8 dyndns test
********************************************************************************
inis/pbrx.ini -> (Conflicting basepython for environment 'py36'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/openstack/pbrx (repo modified: Wed, 11 Jul 2018 16:56:30 GMT)
;https://github.com/openstack/pbrx (repo modified: Wed, 11 Jul 2018 16:56:30 GMT)
[tox]
minversion = 2.0
envlist = py35,py36,pep8
skipsdist = True
[testenv]
usedevelop = True
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
deps = -r{toxinidir}/test-requirements.txt
commands = stestr run {posargs}
basepython = python3
[testenv:pep8]
commands = flake8 {posargs}
[testenv:venv]
commands = {posargs}
[testenv:cover]
setenv =
VIRTUAL_ENV={envdir}
PYTHON=coverage run --source pbrx --parallel-mode
commands =
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:docs]
commands =
sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
[testenv:releasenotes]
commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[flake8]
max-line-length = 88
show-source = True
builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
********************************************************************************
inis/charm-ceph-mon.ini -> (Conflicting basepython for environment 'py36'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/openstack/charm-ceph-mon (repo modified: Thu, 12 Jul 2018 06:28:12 GMT)
;https://github.com/openstack/charm-ceph-mon (repo modified: Thu, 12 Jul 2018 06:28:12 GMT)
# Classic charm: ./tox.ini
# This file is managed centrally by release-tools and should not be modified
# within individual charm repos.
[tox]
;envlist = pep8,py27,py35,py36
envlist = pep8,py27,py35
skipsdist = True
;skip_missing_interpreters = True
[testenv]
setenv = VIRTUAL_ENV={envdir}
PYTHONHASHSEED=0
CHARM_DIR={envdir}
AMULET_SETUP_TIMEOUT=5400
install_command =
pip install {opts} {packages}
commands = ostestr {posargs}
whitelist_externals = juju
passenv = HOME TERM AMULET_* CS_API_*
[testenv:py27]
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
# temporarily disable py27
commands = /bin/true
; keep zuul happy until we change the py35 job
[testenv:py35]
basepython = python3
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
[testenv:py36]
basepython = python3
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
[testenv:pep8]
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = flake8 {posargs} hooks unit_tests tests actions lib
charm-proof
[testenv:venv]
commands = {posargs}
[testenv:func27-noop]
# DRY RUN - For Debug
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
bundletester -vl DEBUG -r json -o func-results.json --test-pattern "gate-*" -n --no-destroy
[testenv:func27]
# Charm Functional Test
# Run all gate tests which are +x (expected to always pass)
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
bundletester -vl DEBUG -r json -o func-results.json --test-pattern "gate-*" --no-destroy
[testenv:func27-smoke]
# Charm Functional Test
# Run a specific test as an Amulet smoke test (expected to always pass)
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
bundletester -vl DEBUG -r json -o func-results.json gate-basic-bionic-queens --no-destroy
[testenv:func27-dfs]
# Charm Functional Test
# Run all deploy-from-source tests which are +x (may not always pass!)
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
bundletester -vl DEBUG -r json -o func-results.json --test-pattern "dfs-*" --no-destroy
[testenv:func27-dev]
# Charm Functional Test
# Run all development test targets which are +x (may not always pass!)
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
bundletester -vl DEBUG -r json -o func-results.json --test-pattern "dev-*" --no-destroy
[flake8]
ignore = E402,E226
exclude = */charmhelpers
********************************************************************************
inis/airship-pegleg.ini -> (Conflicting basepython for environment 'py36'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/openstack/airship-pegleg (repo modified: Wed, 11 Jul 2018 00:59:16 GMT)
;https://github.com/openstack/airship-pegleg (repo modified: Wed, 11 Jul 2018 00:59:16 GMT)
[tox]
envlist = py35, py36, pep8
skipsdist = True
[testenv]
deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
basepython=python3
whitelist_externals =
find
commands =
find . -type f -name "*.pyc" -delete
pytest \
{posargs}
[testenv:fmt]
deps = yapf==0.20.0
commands =
yapf --style=pep8 -ir {toxinidir}/pegleg {toxinidir}/tests
[testenv:pep8]
deps =
yapf==0.20.0
flake8==3.5.0
commands =
yapf -rd {toxinidir}/pegleg {toxinidir}/tests
flake8 {toxinidir}/pegleg
[testenv:bandit]
commands = bandit -r pegleg -n 5
[flake8]
ignore = E125,E251,W503
********************************************************************************
inis/ansible-role-hd_idle.ini -> (Conflicting basepython for environment 'py27-ansible24'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/infothrill/ansible-role-hd_idle (repo modified: Thu, 12 Jul 2018 22:11:39 GMT)
;https://github.com/infothrill/ansible-role-hd_idle (repo modified: Thu, 12 Jul 2018 22:11:39 GMT)
[tox]
minversion = 1.8
envlist = py{27}-ansible{24,25,26}
skipsdist = true
[testenv]
# ansible only supports python3 in versions >= 2.5
basepython = python2
passenv = *
deps =
-rrequirements.txt
ansible24: ansible>=2.4,<2.5
ansible25: ansible>=2.5,<2.6
ansible26: ansible>=2.6,<2.7
commands =
pip list
molecule --version
ansible --version
ansible-lint --version
./run_molecule.sh
[travis]
os =
linux: py{27}-ansible{24,25,26}
[travis:env]
ANSIBLE =
2.4: ansible24
2.5: ansible25
2.6: ansible26
********************************************************************************
inis/designate.ini -> (Conflicting basepython for environment 'py35'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/openstack/designate (repo modified: Tue, 10 Jul 2018 15:11:03 GMT)
;https://github.com/openstack/designate (repo modified: Tue, 10 Jul 2018 15:11:03 GMT)
[tox]
minversion = 2.0
envlist = py35,py27,flake8
skipsdist = True
[testenv]
usedevelop = True
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=master} {opts} {packages}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
setenv =
PYTHONDONTWRITEBYTECODE=1
whitelist_externals = sh
find
rm
commands =
find . -type f -name "*.py[c|o]" -delete
rm -f .testrepository/times.dbm
passenv = http_proxy
HTTP_PROXY
https_proxy
HTTPS_PROXY
no_proxy
NO_PROXY
OS_DEBUG
OS_LOG_CAPTURE
OS_STDERR_CAPTURE
OS_STDOUT_CAPTURE
[testenv:py27]
commands =
{[testenv]commands}
stestr run '{posargs}'
stestr slowest
[testenv:py35]
basepython = python3
commands =
{[testenv]commands}
stestr run '{posargs}'
[testenv:docs]
basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build
sphinx-build -W -b html doc/source doc/build/html
[testenv:cover]
basepython = python3
setenv =
{[testenv]setenv}
PYTHON=coverage run --source designate --parallel-mode
commands =
coverage erase
find . -type f -name "*.pyc" -delete
stestr run --no-subunit-trace {posargs}
coverage combine
coverage report --skip-covered
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:bandit]
basepython = python3
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r designate -n5 -x tests -t \
B111,B505,B504,B503,B502,B501,B604,B605,B001,B601,B602,B701,B609,B702,\
B608,B506,B312,B310,B411,B109,B108,B103,B102,B309,B308,B302,B307,B306
[testenv:debug]
basepython = python3
commands = oslo_debug_helper -t designate/tests {posargs}
[testenv:flake8]
basepython = python3
deps = -r{toxinidir}/test-requirements.txt
commands = sh tools/pretty_flake8.sh
{[testenv:bandit]commands}
[testenv:pep8]
deps = -r{toxinidir}/test-requirements.txt
basepython = python3
commands = sh tools/pretty_flake8.sh
{[testenv:bandit]commands}
doc8 {posargs}
[testenv:genconfig]
basepython = python3
commands = oslo-config-generator --config-file=etc/designate/designate-config-generator.conf
[testenv:genpolicy]
basepython = python3
commands = oslopolicy-sample-generator --config-file etc/designate/designate-policy-generator.conf
[testenv:bashate]
basepython = python3
deps = bashate
whitelist_externals = bash
commands = bash -c "find {toxinidir}/devstack \
-not \( -type d -name .?\* -prune \) \
-not \( -type d -name doc -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
\( \
-name \*.sh -or \
-name \*rc -or \
-name functions\* -or \
-wholename \*/lib/\* \
\) \
-print0 | xargs -0 bashate -v"
[testenv:pip-check-reqs]
basepython = python3
# do not install test-requirements as that will pollute the virtualenv for
# determining missing packages
# this also means that pip-missing-reqs must be installed separately, outside
# of the requirements.txt files
deps = pip-check-reqs
-r{toxinidir}/requirements.txt
commands=pip-missing-reqs -d --ignore-file=designate/tests/* designate
[testenv:api-ref]
basepython = python3
# This environment is called from CI scripts to test and publish
# the API Ref to developer.openstack.org.
#
# we do not used -W here because we are doing some slightly tricky
# things to build a single page document, and as such, we are ok
# ignoring the duplicate stanzas warning.
commands =
rm -rf api-ref/build
sphinx-build -E -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
[testenv:releasenotes]
basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf releasenotes/build
sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:venv]
basepython = python3
commands = {posargs}
[doc8]
ignore-path = .venv,.git,.tox,*designate/locale*,*lib/python*,*designate.egg*,api-ref/build,doc/build,doc/source/contributor/api
[flake8]
# ignored flake8 codes:
# H105 don't use author tags. We use version control instead
# H302 import only modules
# H306 imports not in alphabetical order
# H328 old style class declaration, use new style (inherit from `object`)
# H402 one line docstring needs punctuation
# H404 multi line docstring should start with a summary
# H405 multi line docstring summary not separated with an empty line
# H501 Do not use locals() or self.__dict__ for string formatting.
# H904 Wrap long lines in parentheses instead of a backslash
# E126 continuation line over-indented for hanging indent
# E128 continuation line under-indented for visual indent
ignore = H105,H302,H306,H238,H402,H404,H405,H501,H904,E126,E128
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,.ropeproject
[hacking]
local-check-factory = designate.hacking.checks.factory
import_exceptions = designate.i18n
[testenv:lower-constraints]
basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
********************************************************************************
inis/downstream_annotation.ini -> (Conflicting basepython for environment 'py27'; resolve conflict or configure ignore_basepython_conflict): ;https://github.com/EpiCompBio/downstream_annotation (repo modified: Mon, 09 Jul 2018 15:52:11 GMT)
;https://github.com/EpiCompBio/downstream_annotation (repo modified: Mon, 09 Jul 2018 15:52:11 GMT)
# See: https://pypi.python.org/pypi/tox
# https://tox.readthedocs.io/en/latest/
#Tox is a generic virtualenv management and test command line tool you can use for:
# checking your package installs correctly with different Python versions and interpreters
# running your tests in each of the environments, configuring your test tool of choice
# acting as a frontend to Continuous Integration servers, greatly reducing boilerplate and merging CI and shell-based testing.
# content of: tox.ini , put in same dir as setup.py
[tox]
envlist = py27,py35
[testenv]
deps=
nose
numpy
cython
pysam
bx-python
commands=nosetests tests/test_style.py tests/test_scripts.py
[testenv:py27]
basepython=/xxx/bin/python2.7
[testenv:py35]
basepython=/xxx/bin/python3.5
********************************************************************************
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment