diff options
Diffstat (limited to 'conftest.py')
-rw-r--r-- | conftest.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/conftest.py b/conftest.py index 3cccfe1..723e5b4 100644 --- a/conftest.py +++ b/conftest.py @@ -1,3 +1,8 @@ +import sys + +import pytest + + pytest_plugins = 'setuptools.tests.fixtures' @@ -6,3 +11,40 @@ def pytest_addoption(parser): "--package_name", action="append", default=[], help="list of package_name to pass to test functions", ) + parser.addoption( + "--integration", action="store_true", default=False, + help="run integration tests (only)" + ) + + +def pytest_configure(config): + config.addinivalue_line("markers", "integration: integration tests") + config.addinivalue_line("markers", "uses_network: tests may try to download files") + + +collect_ignore = [ + 'tests/manual_test.py', + 'setuptools/tests/mod_with_constant.py', + 'setuptools/_distutils', + '_distutils_hack', + 'setuptools/extern', + 'pkg_resources/extern', + 'pkg_resources/tests/data', + 'setuptools/_vendor', + 'pkg_resources/_vendor', +] + + +if sys.version_info < (3, 6): + collect_ignore.append('docs/conf.py') # uses f-strings + collect_ignore.append('pavement.py') + + +@pytest.fixture(autouse=True) +def _skip_integration(request): + running_integration_tests = request.config.getoption("--integration") + is_integration_test = request.node.get_closest_marker("integration") + if running_integration_tests and not is_integration_test: + pytest.skip("running integration tests only") + if not running_integration_tests and is_integration_test: + pytest.skip("skipping integration tests") |