summaryrefslogtreecommitdiff
path: root/conftest.py
diff options
context:
space:
mode:
authorTristan Maat <tm@tlater.net>2018-01-11 08:25:37 +0000
committerTristan Maat <tristan.maat@codethink.co.uk>2018-02-07 16:14:11 +0000
commiteeed9f62eec752e3071211ccbdca1139e6e3448b (patch)
tree2d246fa3c02358d53037a2c7a41c18d2acefdf90 /conftest.py
parent11c8f386bbf2c416705f4b6399b20b49f33dbde2 (diff)
downloadbuildstream-eeed9f62eec752e3071211ccbdca1139e6e3448b.tar.gz
Merge integration tests into general tests
Diffstat (limited to 'conftest.py')
-rwxr-xr-xconftest.py54
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