From f6fa2fd6a0d5dcdbb4b02d92c44de6233d5561f9 Mon Sep 17 00:00:00 2001 From: DaanDeMeyer Date: Sun, 5 Oct 2025 22:46:01 +0200 Subject: [PATCH] test: add unit tests for parents_below() utility function --- tests/test_util.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tests/test_util.py diff --git a/tests/test_util.py b/tests/test_util.py new file mode 100644 index 000000000..8796b7826 --- /dev/null +++ b/tests/test_util.py @@ -0,0 +1,52 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +from pathlib import Path + +import pytest + +from mkosi.util import parents_below + + +def test_parents_below_basic() -> None: + path = Path("/a/b/c/d/e") + below = Path("/a/b") + assert parents_below(path, below) == [Path("/a/b/c/d"), Path("/a/b/c")] + + +def test_parents_below_root() -> None: + path = Path("/a/b/c") + below = Path("/") + assert parents_below(path, below) == [Path("/a/b"), Path("/a")] + + +def test_parents_below_direct_child() -> None: + path = Path("/a/b/c") + below = Path("/a/b") + assert parents_below(path, below) == [] + + +def test_parents_below_relative_paths() -> None: + path = Path("a/b/c/d") + below = Path("a/b") + assert parents_below(path, below) == [Path("a/b/c")] + + +def test_parents_below_same_path_raises() -> None: + path = Path("/a/b/c") + below = Path("/a/b/c") + with pytest.raises(ValueError): + parents_below(path, below) + + +def test_parents_below_not_parent_raises() -> None: + path = Path("/a/b/c") + below = Path("/x/y/z") + with pytest.raises(ValueError): + parents_below(path, below) + + +def test_parents_below_below_is_child_raises() -> None: + path = Path("/a/b") + below = Path("/a/b/c") + with pytest.raises(ValueError): + parents_below(path, below) -- 2.47.3