diff options
author | Tristan Maat <tm@tlater.net> | 2018-01-11 08:25:37 +0000 |
---|---|---|
committer | Tristan Maat <tristan.maat@codethink.co.uk> | 2018-02-07 16:14:11 +0000 |
commit | eeed9f62eec752e3071211ccbdca1139e6e3448b (patch) | |
tree | 2d246fa3c02358d53037a2c7a41c18d2acefdf90 /conftest.py | |
parent | 11c8f386bbf2c416705f4b6399b20b49f33dbde2 (diff) | |
download | buildstream-eeed9f62eec752e3071211ccbdca1139e6e3448b.tar.gz |
Merge integration tests into general tests
Diffstat (limited to 'conftest.py')
-rwxr-xr-x | conftest.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/conftest.py b/conftest.py new file mode 100755 index 000000000..22eaae23b --- /dev/null +++ b/conftest.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2018 Codethink Limited +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library. If not, see <http://www.gnu.org/licenses/>. +# +# Authors: +# Tristan Maat <tristan.maat@codethink.co.uk> + +import os +import pytest +import shutil +import tempfile + + +def pytest_addoption(parser): + parser.addoption('--integration', action='store_true', default=False, + help='Run integration tests') + + +def pytest_runtest_setup(item): + if item.get_marker('integration') and not item.config.getvalue('integration'): + pytest.skip('skipping integration test') + + +@pytest.fixture(scope='session') +def integration_cache(request): + + # Set the tempdir to the INTEGRATION_CACHE variable, or the + # default if that is not set. + cache_dir = os.environ.get('INTEGRATION_CACHE', tempfile.gettempdir()) + + # We use a separate tempdir to cache sources and artifacts to + # increase test speed + cache = os.path.join(cache_dir, 'integration-cache') + yield cache + + # Clean up the artifacts after each test run - we only want to + # cache sources + try: + shutil.rmtree(os.path.join(cache, 'artifacts')) + except FileNotFoundError: + pass |