diff options
author | Benjamin Schubert <bschubert15@bloomberg.net> | 2019-11-12 11:40:25 +0000 |
---|---|---|
committer | bst-marge-bot <marge-bot@buildstream.build> | 2019-11-12 13:02:30 +0000 |
commit | 2e585ac6b60bb79a9ced7fe4fcd748be9673ed7d (patch) | |
tree | 88f1229bd9f411ff7a2edaa3857436cc840ca041 /tests | |
parent | 7c470b46b33257bb81d70a00cb6b2114d68b9097 (diff) | |
download | buildstream-2e585ac6b60bb79a9ced7fe4fcd748be9673ed7d.tar.gz |
_sourcecache.py: Fix reporting of capabilities for the source cache
This also adds a test to ensure we are correctly setting the cache up
Diffstat (limited to 'tests')
-rw-r--r-- | tests/sourcecache/capabilities.py | 54 |
1 files changed, 54 insertions, 0 deletions
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" |