From c0315a4a9a96a735aec991d931e745499c1109e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrg=20Billeter?= Date: Wed, 13 Mar 2019 16:34:34 +0000 Subject: tests/artifactcache/push.py: Remove push_directory() test push_directory() is unused and will be removed. --- tests/artifactcache/push.py | 108 -------------------------------------------- 1 file changed, 108 deletions(-) diff --git a/tests/artifactcache/push.py b/tests/artifactcache/push.py index 69f3fbfbb..56af50a0d 100644 --- a/tests/artifactcache/push.py +++ b/tests/artifactcache/push.py @@ -135,114 +135,6 @@ def _test_push(user_config_file, project_dir, element_name, element_key, queue): queue.put("No remote configured for element {}".format(element_name)) -@pytest.mark.datafiles(DATA_DIR) -def test_push_directory(cli, tmpdir, datafiles): - project_dir = str(datafiles) - - # First build the project without the artifact cache configured - result = cli.run(project=project_dir, args=['build', 'target.bst']) - result.assert_success() - - # Assert that we are now cached locally - assert cli.get_element_state(project_dir, 'target.bst') == 'cached' - - # Set up an artifact cache. - with create_artifact_share(os.path.join(str(tmpdir), 'artifactshare')) as share: - # Configure artifact share - rootcache_dir = os.path.join(str(tmpdir), 'cache') - user_config_file = str(tmpdir.join('buildstream.conf')) - user_config = { - 'scheduler': { - 'pushers': 1 - }, - 'artifacts': { - 'url': share.repo, - 'push': True, - }, - 'cachedir': rootcache_dir - } - - # Write down the user configuration file - _yaml.dump(_yaml.node_sanitize(user_config), filename=user_config_file) - - # Fake minimal context - context = Context() - context.load(config=user_config_file) - context.set_message_handler(message_handler) - - # Load the project and CAS cache - project = Project(project_dir, context) - project.ensure_fully_loaded() - artifactcache = context.artifactcache - cas = artifactcache.cas - - # Assert that the element's artifact is cached - element = project.load_elements(['target.bst'])[0] - element_key = cli.get_element_key(project_dir, 'target.bst') - assert artifactcache.contains(element, element_key) - - # Manually setup the CAS remote - artifactcache.setup_remotes(use_config=True) - artifactcache.initialize_remotes() - assert artifactcache.has_push_remotes(plugin=element) - - # Recreate the CasBasedDirectory object from the cached artifact - artifact_ref = element.get_artifact_name(element_key) - artifact_digest = cas.resolve_ref(artifact_ref) - - queue = multiprocessing.Queue() - # Use subprocess to avoid creation of gRPC threads in main BuildStream process - # See https://github.com/grpc/grpc/blob/master/doc/fork_support.md for details - process = multiprocessing.Process(target=_queue_wrapper, - args=(_test_push_directory, queue, user_config_file, - project_dir, artifact_digest)) - - try: - # Keep SIGINT blocked in the child process - with _signals.blocked([signal.SIGINT], ignore=False): - process.start() - - directory_hash = queue.get() - process.join() - except KeyboardInterrupt: - utils._kill_process_tree(process.pid) - raise - - assert directory_hash - assert artifact_digest.hash == directory_hash - assert share.has_object(artifact_digest) - - -def _test_push_directory(user_config_file, project_dir, artifact_digest, queue): - # Fake minimal context - context = Context() - context.load(config=user_config_file) - context.set_message_handler(message_handler) - - # Load the project manually - project = Project(project_dir, context) - project.ensure_fully_loaded() - - # Create a local CAS cache handle - cas = context.artifactcache - - # Manually setup the CAS remote - cas.setup_remotes(use_config=True) - cas.initialize_remotes() - - if cas.has_push_remotes(): - # Create a CasBasedDirectory from local CAS cache content - directory = CasBasedDirectory(context.artifactcache.cas, digest=artifact_digest) - - # Push the CasBasedDirectory object - cas.push_directory(project, directory) - - digest = directory._get_digest() - queue.put(digest.hash) - else: - queue.put("No remote configured") - - @pytest.mark.datafiles(DATA_DIR) def test_push_message(tmpdir, datafiles): project_dir = str(datafiles) -- cgit v1.2.1