From 2e585ac6b60bb79a9ced7fe4fcd748be9673ed7d Mon Sep 17 00:00:00 2001 From: Benjamin Schubert Date: Tue, 12 Nov 2019 11:40:25 +0000 Subject: _sourcecache.py: Fix reporting of capabilities for the source cache This also adds a test to ensure we are correctly setting the cache up --- tests/sourcecache/capabilities.py | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 tests/sourcecache/capabilities.py (limited to 'tests') diff --git a/tests/sourcecache/capabilities.py b/tests/sourcecache/capabilities.py new file mode 100644 index 000000000..18dfddbab --- /dev/null +++ b/tests/sourcecache/capabilities.py @@ -0,0 +1,54 @@ +# Pylint doesn't play well with fixtures and dependency injection from pytest +# pylint: disable=redefined-outer-name + +import os + +import pytest +from buildstream._project import Project + +from buildstream import _yaml +from buildstream.testing.runcli import cli # pylint: disable=unused-import +from tests.testutils import dummy_context + +from tests.testutils.artifactshare import create_dummy_artifact_share + + +DATA_DIR = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "project", +) + + +@pytest.mark.datafiles(DATA_DIR) +def test_artifact_cache_with_missing_capabilities_is_skipped(cli, tmpdir, datafiles): + project_dir = str(datafiles) + + # Set up an artifact cache. + with create_dummy_artifact_share() as share: + # Configure artifact share + cache_dir = os.path.join(str(tmpdir), 'cache') + user_config_file = str(tmpdir.join('buildstream.conf')) + user_config = { + 'scheduler': { + 'pushers': 1 + }, + 'source-caches': { + 'url': share.repo, + }, + 'cachedir': cache_dir + } + _yaml.roundtrip_dump(user_config, file=user_config_file) + + with dummy_context(config=user_config_file) as context: + # Load the project + project = Project(project_dir, context) + project.ensure_fully_loaded() + + # Create a local artifact cache handle + sourcecache = context.sourcecache + + # Manually setup the CAS remote + sourcecache.setup_remotes(use_config=True) + + assert not sourcecache.has_fetch_remotes(), \ + "System didn't realize the source cache didn't support BuildStream" -- cgit v1.2.1