From fffdd48452f065ab38ec7b0718f206ca53c791ef Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Feb 26 2020 21:08:39 +0000 Subject: Set up for tox testing (in preparation for CI) Including fixes for some issues tox complains about... Signed-off-by: Adam Williamson --- diff --git a/.gitignore b/.gitignore index f496ba1..ea5723a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ build/ dist/ fedora_openqa.egg-info/ .cache/ +.tox/ +coverage.xml .coverage .eggs/ # so you can keep symlinks to checkouts if you like diff --git a/install.requires b/install.requires new file mode 100644 index 0000000..2ceb3d1 --- /dev/null +++ b/install.requires @@ -0,0 +1,8 @@ +fedfind>=2.5.0 +fedora-messaging +openqa-client>=1.1 +setuptools +six +resultsdb_api +resultsdb_conventions>=2.0.2 +wikitcms diff --git a/setup.py b/setup.py index 740218c..d1b712e 100644 --- a/setup.py +++ b/setup.py @@ -37,30 +37,29 @@ def read(fname): # a /usr/local/bin/fedmsg-logger which is Python 3...we want to be # able to avoid this, so hack up a 'no deps' if "--nodeps" in sys.argv: - installreqs = [] + INSTALLREQS = [] sys.argv.remove("--nodeps") else: - installreqs = ['fedfind>=2.5.0', 'fedora-messaging', 'openqa-client>=1.1', 'setuptools', - 'six', 'resultsdb_api', 'resultsdb_conventions>=2.0.2', 'wikitcms'] + INSTALLREQS = open('install.requires').read().splitlines() setup( - name = "fedora_openqa", - version = "3.0.0", - entry_points = { + name="fedora_openqa", + version="3.0.0", + entry_points={ 'console_scripts': [ 'fedora-openqa = fedora_openqa.cli:main', ], }, - author = "Fedora QA devel team", - author_email = "qa-devel@lists.fedoraproject.org", - description = "Fedora openQA job scheduler and result forwarders", - license = "GPLv3+", - keywords = "fedora openqa test qa", - url = "https://pagure.io/fedora-qa/fedora_openqa", - packages = ["fedora_openqa"], - install_requires = installreqs, - tests_require=['pytest', 'mock'], - cmdclass = {'test': PyTest}, + author="Fedora QA devel team", + author_email="qa-devel@lists.fedoraproject.org", + description="Fedora openQA job scheduler and result forwarders", + license="GPLv3+", + keywords="fedora openqa test qa", + url="https://pagure.io/fedora-qa/fedora_openqa", + packages=["fedora_openqa"], + install_requires=INSTALLREQS, + tests_require=open('tests.requires').read().splitlines(), + cmdclass={'test': PyTest}, long_description=read('README.md'), classifiers=[ "Development Status :: 5 - Production/Stable", diff --git a/tests.requires b/tests.requires new file mode 100644 index 0000000..625bed6 --- /dev/null +++ b/tests.requires @@ -0,0 +1,2 @@ +pytest +mock diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..44ea97c --- /dev/null +++ b/tox.ini @@ -0,0 +1,17 @@ +[tox] +skipsdist = True +envlist = py37,py38,py39 +skip_missing_interpreters = true +[testenv] +deps = + -r{toxinidir}/install.requires + -r{toxinidir}/tests.requires + -r{toxinidir}/tox.requires + +commands= + py.test + py.test --cov-report term-missing --cov-report xml --cov fedora_openqa + diff-cover coverage.xml --fail-under=90 + diff-quality --violations=pylint --fail-under=90 +setenv = + PYTHONPATH = {toxinidir} diff --git a/tox.requires b/tox.requires new file mode 100644 index 0000000..c245df4 --- /dev/null +++ b/tox.requires @@ -0,0 +1,4 @@ +coverage +diff-cover +pylint +pytest-cov