diff --git a/requirements-test-db.txt b/requirements-test-db.txt new file mode 100644 index 0000000..cfd42eb --- /dev/null +++ b/requirements-test-db.txt @@ -0,0 +1 @@ +pytest-postgresql diff --git a/requirements-test.txt b/requirements-test.txt index 170e10c..6bf9fdc 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,6 +1,5 @@ pytest -pytest-postgresql requests-mock hypothesis >= 3.11.0 pre-commit pytz diff --git a/setup.py b/setup.py index 43d5dca..3544b4d 100755 --- a/setup.py +++ b/setup.py @@ -1,83 +1,87 @@ #!/usr/bin/env python3 # Copyright (C) 2015-2018 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information import os from setuptools import setup, find_packages from os import path from io import open here = path.abspath(path.dirname(__file__)) # Get the long description from the README file with open(path.join(here, 'README.md'), encoding='utf-8') as f: long_description = f.read() def parse_requirements(*names): requirements = [] for name in names: if name: reqf = 'requirements-%s.txt' % name else: reqf = 'requirements.txt' if not os.path.exists(reqf): return requirements with open(reqf) as f: for line in f.readlines(): line = line.strip() if not line or line.startswith('#'): continue requirements.append(line) return requirements setup( name='swh.core', description='Software Heritage core utilities', long_description=long_description, long_description_content_type='text/markdown', author='Software Heritage developers', author_email='swh-devel@inria.fr', url='https://forge.softwareheritage.org/diffusion/DCORE/', packages=find_packages(), py_modules=['pytest_swh_core'], scripts=[], install_requires=parse_requirements(None, 'swh'), setup_requires=['vcversioner'], extras_require={ - 'testing': parse_requirements('test', 'db', 'http', 'logging'), + 'testing-core': parse_requirements('test'), 'logging': parse_requirements('logging'), 'db': parse_requirements('db'), + 'testing-db': parse_requirements('test-db'), 'http': parse_requirements('http'), + # kitchen sink, please do not use + 'testing': parse_requirements('test', 'test-db', 'db', 'http', + 'logging'), }, vcversioner={}, include_package_data=True, entry_points=''' [console_scripts] swh=swh.core.cli:main swh-db-init=swh.core.cli.db:db_init [swh.cli.subcommands] db=swh.core.cli.db:db db-init=swh.core.cli.db:db_init [pytest11] pytest_swh_core = swh.core.pytest_plugin ''', classifiers=[ "Programming Language :: Python :: 3", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Development Status :: 5 - Production/Stable", ], project_urls={ 'Bug Reports': 'https://forge.softwareheritage.org/maniphest', 'Funding': 'https://www.softwareheritage.org/donate', 'Source': 'https://forge.softwareheritage.org/source/swh-core', }, ) diff --git a/tox.ini b/tox.ini index ec24e0f..d82c117 100644 --- a/tox.ini +++ b/tox.ini @@ -1,40 +1,40 @@ [tox] envlist=flake8,mypy,py3-{core,db,server} [testenv] deps = - -rrequirements-test.txt - core: -rrequirements-logging.txt - db: .[db] + .[testing-core] + core: .[logging] + db: .[db,testing-db] db: pifpaf server: .[http] cover: pytest-cov commands = db: pifpaf run postgresql -- \ pytest --doctest-modules \ slow: --hypothesis-profile=slow \ cover: --cov={envsitepackagesdir}/swh/core --cov-branch \ core: {envsitepackagesdir}/swh/core/tests \ db: {envsitepackagesdir}/swh/core/db/tests \ server: {envsitepackagesdir}/swh/core/api/tests \ {posargs} [testenv:py3] skip_install = true deps = tox commands = tox -e py3-core-db-server-slow-cover -- {posargs} [testenv:flake8] skip_install = true deps = flake8 commands = {envpython} -m flake8 [testenv:mypy] skip_install = true deps = - .[testing] + .[logging,db,http,testing-core,testing-db] mypy commands = mypy swh