diff options
author | Jürg Billeter <j@bitron.ch> | 2019-07-12 05:53:39 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2019-08-20 07:41:23 +0200 |
commit | ecf5511baebcfdc83260a814af376377ff76f0de (patch) | |
tree | b23507f5bc6d467817ac7198f8026795b1e20b52 | |
parent | 8c18f1b61042719e756f29683e7eb62f561a3939 (diff) | |
download | buildstream-ecf5511baebcfdc83260a814af376377ff76f0de.tar.gz |
tests/internals/storage.py: Use context manager for casd termination
-rw-r--r-- | tests/internals/storage.py | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/tests/internals/storage.py b/tests/internals/storage.py index c23283221..385162c13 100644 --- a/tests/internals/storage.py +++ b/tests/internals/storage.py @@ -1,3 +1,4 @@ +from contextlib import contextmanager import multiprocessing import os import signal @@ -28,23 +29,26 @@ def _queue_wrapper(target, queue, *args): queue.put(None) +@contextmanager def setup_backend(backend_class, tmpdir): if backend_class == FileBasedDirectory: - return backend_class(os.path.join(tmpdir, "vdir")) + yield backend_class(os.path.join(tmpdir, "vdir")) else: cas_cache = CASCache(tmpdir) - return backend_class(cas_cache) + try: + yield backend_class(cas_cache) + finally: + cas_cache.release_resources() def _test_import_subprocess(tmpdir, datafiles, backend): original = os.path.join(str(datafiles), "original") - c = setup_backend(backend, str(tmpdir)) + with setup_backend(backend, str(tmpdir)) as c: + c.import_files(original) - c.import_files(original) - - assert "bin/bash" in c.list_relative_paths() - assert "bin/hello" in c.list_relative_paths() + assert "bin/bash" in c.list_relative_paths() + assert "bin/hello" in c.list_relative_paths() @pytest.mark.parametrize("backend", [ @@ -71,18 +75,17 @@ def _test_modified_file_list_subprocess(tmpdir, datafiles, backend): original = os.path.join(str(datafiles), "original") overlay = os.path.join(str(datafiles), "overlay") - c = setup_backend(backend, str(tmpdir)) - - c.import_files(original) + with setup_backend(backend, str(tmpdir)) as c: + c.import_files(original) - c.mark_unmodified() + c.mark_unmodified() - c.import_files(overlay) + c.import_files(overlay) - print("List of all paths in imported results: {}".format(c.list_relative_paths())) - assert "bin/bash" in c.list_relative_paths() - assert "bin/bash" in c.list_modified_paths() - assert "bin/hello" not in c.list_modified_paths() + print("List of all paths in imported results: {}".format(c.list_relative_paths())) + assert "bin/bash" in c.list_relative_paths() + assert "bin/bash" in c.list_modified_paths() + assert "bin/hello" not in c.list_modified_paths() @pytest.mark.parametrize("backend", [ |