diff --git a/test/mod/test_objectstore.py b/test/mod/test_objectstore.py index 174b9873..e7aa348a 100644 --- a/test/mod/test_objectstore.py +++ b/test/mod/test_objectstore.py @@ -21,12 +21,6 @@ def store_path(store: objectstore.ObjectStore, ref: str, path: str) -> bool: return os.path.exists(os.path.join(obj, path)) -@pytest.fixture(name="tmpdir") -def tmpdir_fixture(): - with tempfile.TemporaryDirectory() as tmp: - yield tmp - - @pytest.fixture(name="object_store") def store_fixture(): with tempfile.TemporaryDirectory( @@ -83,8 +77,8 @@ def test_basic(object_store): assert tree.mode == objectstore.Object.Mode.READ -def test_cleanup(tmpdir): - with objectstore.ObjectStore(tmpdir) as object_store: +def test_cleanup(tmp_path): + with objectstore.ObjectStore(tmp_path) as object_store: object_store.maximum_size = 1024 * 1024 * 1024 stage = os.path.join(object_store, "stage") @@ -94,11 +88,11 @@ def test_cleanup(tmpdir): p.touch() # there should be no temporary Objects dirs anymore - with objectstore.ObjectStore(tmpdir) as object_store: + with objectstore.ObjectStore(tmp_path) as object_store: assert object_store.get("A") is None -def test_metadata(tmpdir): +def test_metadata(tmp_path): # test metadata object directly first with tempfile.TemporaryDirectory() as tmp: @@ -154,8 +148,8 @@ def test_metadata(tmpdir): md.set("a", data) assert md.get("a") == data - # use tmpdir fixture from here on - with objectstore.ObjectStore(tmpdir) as store: + # use tmp_path fixture from here on + with objectstore.ObjectStore(tmp_path) as store: store.maximum_size = 1024 * 1024 * 1024 obj = store.new("a") p = Path(obj, "A") @@ -170,7 +164,7 @@ def test_metadata(tmpdir): store.commit(obj, "a") - with objectstore.ObjectStore(tmpdir) as store: + with objectstore.ObjectStore(tmp_path) as store: obj = store.get("a") assert obj.meta.get("md") == data @@ -183,8 +177,8 @@ def test_metadata(tmpdir): @pytest.mark.skipif(not test.TestBase.can_bind_mount(), reason="Need root for bind mount") -def test_host_tree(tmpdir): - with objectstore.ObjectStore(tmpdir) as store: +def test_host_tree(tmp_path): + with objectstore.ObjectStore(tmp_path) as store: host = store.host_tree assert host.tree @@ -256,10 +250,10 @@ def test_source_epoch(object_store): @pytest.mark.skipif(not test.TestBase.can_bind_mount(), reason="Need root for bind mount") -def test_store_server(tmpdir): +def test_store_server(tmp_path): with contextlib.ExitStack() as stack: - store = objectstore.ObjectStore(tmpdir) + store = objectstore.ObjectStore(tmp_path) stack.enter_context(store) tmp = tempfile.TemporaryDirectory() @@ -271,7 +265,7 @@ def test_store_server(tmpdir): client = objectstore.StoreClient(server.socket_address) have = client.source("org.osbuild.files") - want = os.path.join(tmpdir, "sources") + want = os.path.join(tmp_path, "sources") assert have.startswith(want) tmp = client.mkdtemp(suffix="suffix", prefix="prefix") @@ -288,7 +282,7 @@ def test_store_server(tmpdir): p.mkdir() obj.finalize() - mountpoint = Path(tmpdir, "mountpoint") + mountpoint = Path(tmp_path, "mountpoint") mountpoint.mkdir() assert store.contains("42") @@ -301,7 +295,7 @@ def test_store_server(tmpdir): # check we can mount subtrees via `read_tree_at` - filemount = Path(tmpdir, "file") + filemount = Path(tmp_path, "file") filemount.touch() path = client.read_tree_at("42", filemount, "/file.txt") @@ -310,7 +304,7 @@ def test_store_server(tmpdir): txt = filepath.read_text(encoding="utf8") assert txt == "osbuild" - dirmount = Path(tmpdir, "dir") + dirmount = Path(tmp_path, "dir") dirmount.mkdir() path = client.read_tree_at("42", dirmount, "/directory") @@ -321,8 +315,8 @@ def test_store_server(tmpdir): # mount points and sub-trees with pytest.raises(RuntimeError): - nonexistent = os.path.join(tmpdir, "nonexistent") + nonexistent = os.path.join(tmp_path, "nonexistent") _ = client.read_tree_at("42", nonexistent) with pytest.raises(RuntimeError): - _ = client.read_tree_at("42", tmpdir, "/nonexistent") + _ = client.read_tree_at("42", tmp_path, "/nonexistent") diff --git a/test/run/test_devices.py b/test/run/test_devices.py index bca476c4..d0b10b3a 100755 --- a/test/run/test_devices.py +++ b/test/run/test_devices.py @@ -14,21 +14,15 @@ from osbuild import devices, host, loop, meta from ..test import TestBase -@pytest.fixture(name="tmpdir") -def tmpdir_fixture(): - with tempfile.TemporaryDirectory(prefix="test-devices-") as tmp: - yield tmp - - @pytest.mark.skipif(not TestBase.can_bind_mount(), reason="root only") -def test_loopback_basic(tmpdir): +def test_loopback_basic(tmp_path): index = meta.Index(os.curdir) info = index.get_module_info("Device", "org.osbuild.loopback") - tree = os.path.join(tmpdir, "tree") + tree = os.path.join(tmp_path, "tree") os.makedirs(tree) - devpath = os.path.join(tmpdir, "dev") + devpath = os.path.join(tmp_path, "dev") os.makedirs(devpath) size = 1024 * 1024 @@ -37,7 +31,7 @@ def test_loopback_basic(tmpdir): f.truncate(size) sb = os.fstat(f.fileno()) - testfile = os.path.join(tmpdir, "test.img") + testfile = os.path.join(tmp_path, "test.img") options = { "filename": "image.img", diff --git a/test/run/test_mount.py b/test/run/test_mount.py index c5ed72d8..005ad299 100755 --- a/test/run/test_mount.py +++ b/test/run/test_mount.py @@ -19,12 +19,6 @@ from osbuild import devices, host, meta, mounts from ..test import TestBase -@pytest.fixture(name="tmpdir") -def tmpdir_fixture(): - with tempfile.TemporaryDirectory(prefix="test-devices-") as tmp: - yield tmp - - @contextmanager def make_arguments(opts): os.makedirs("/run/osbuild/api") @@ -38,17 +32,17 @@ def make_arguments(opts): @contextmanager -def make_dev_tmpfs(tmpdir): - dev_path = os.path.join(tmpdir, "dev") +def make_dev_tmpfs(tmp_path): + dev_path = os.path.join(tmp_path, "dev") os.makedirs(dev_path) subprocess.run(["mount", "-t", "tmpfs", "-o", "nosuid", "none", dev_path], check=True) yield dev_path subprocess.run(["umount", "--lazy", dev_path], check=True) -def create_image(tmpdir): +def create_image(tmp_path): # create a file to contain an image - tree = os.path.join(tmpdir, "tree") + tree = os.path.join(tmp_path, "tree") os.makedirs(tree) size = 2 * 1024 * 1024 file = os.path.join(tree, "image.img") @@ -120,13 +114,13 @@ def mount(mgr, devpath, tree, size, mountpoint, options): @pytest.mark.skipif(not TestBase.can_bind_mount(), reason="root only") -def test_without_options(tmpdir): - tree, size = create_image(tmpdir) +def test_without_options(tmp_path): + tree, size = create_image(tmp_path) options = {} - with tempfile.TemporaryDirectory(dir=tmpdir) as mountpoint: + with tempfile.TemporaryDirectory(dir=tmp_path) as mountpoint: with host.ServiceManager() as mgr: - with make_dev_tmpfs(tmpdir) as devpath: + with make_dev_tmpfs(tmp_path) as devpath: mount(mgr, devpath, tree, size, mountpoint, options) with open(os.path.join(mountpoint, "test"), "w", encoding="utf-8") as f: f.write("should work") @@ -134,8 +128,8 @@ def test_without_options(tmpdir): @pytest.mark.skipif(not TestBase.can_bind_mount(), reason="root only") -def test_all_options(tmpdir): - tree, size = create_image(tmpdir) +def test_all_options(tmp_path): + tree, size = create_image(tmp_path) options = { "readonly": True, "uid": 0, @@ -145,9 +139,9 @@ def test_all_options(tmpdir): } print(options) - with tempfile.TemporaryDirectory(dir=tmpdir) as mountpoint: + with tempfile.TemporaryDirectory(dir=tmp_path) as mountpoint: with host.ServiceManager() as mgr: - with make_dev_tmpfs(tmpdir) as devpath: + with make_dev_tmpfs(tmp_path) as devpath: mount(mgr, devpath, tree, size, mountpoint, options) # Check FS is read only diff --git a/test/run/test_noop.py b/test/run/test_noop.py index 63e080ea..da66498e 100644 --- a/test/run/test_noop.py +++ b/test/run/test_noop.py @@ -37,12 +37,6 @@ def jsondata_fixture(): }) -@pytest.fixture(name="tmpdir", scope="module") -def tmpdir_fixture(): - with tempfile.TemporaryDirectory() as tmp: - yield tmp - - @pytest.fixture(name="osb", scope="module") def osbuild_fixture(): with test.OSBuild() as osb: @@ -69,5 +63,5 @@ def test_noop2(osb): @pytest.mark.skipif(not test.TestBase.can_bind_mount(), reason="root-only") -def test_noop_v2(osb, tmpdir, jsondata): - osb.compile(jsondata, output_dir=tmpdir, exports=["noop"]) +def test_noop_v2(osb, tmp_path, jsondata): + osb.compile(jsondata, output_dir=tmp_path, exports=["noop"]) diff --git a/test/run/test_sources.py b/test/run/test_sources.py index 37fbe57b..a539da76 100644 --- a/test/run/test_sources.py +++ b/test/run/test_sources.py @@ -114,15 +114,9 @@ def check_case(source, case, store, libdir): raise ValueError(f"invalid expectation: {expects}") -@pytest.fixture(name="tmpdir") -def tmpdir_fixture(): - with tempfile.TemporaryDirectory() as tmp: - yield tmp - - @pytest.mark.skipif(not can_setup_netns(), reason="network namespace setup failed") @pytest.mark.parametrize("source,case", make_test_cases()) -def test_sources(source, case, tmpdir): +def test_sources(source, case, tmp_path): index = osbuild.meta.Index(os.curdir) sources = os.path.join(test.TestBase.locate_test_data(), "sources") @@ -136,7 +130,7 @@ def test_sources(source, case, tmpdir): src = osbuild.sources.Source(info, items, options) - with osbuild.objectstore.ObjectStore(tmpdir) as store, \ + with osbuild.objectstore.ObjectStore(tmp_path) as store, \ fileServer(test.TestBase.locate_test_data()): check_case(src, case_options, store, index.path) check_case(src, case_options, store, index.path)