fix: explicitly process list of packages

Small workaround to remove debug packages from being processed
This commit is contained in:
Evgenii Alekseev 2024-08-08 17:45:14 +03:00
parent 88ee300b9e
commit f7f76c4119
2 changed files with 10 additions and 8 deletions

View File

@ -207,10 +207,11 @@ class PackageArchive:
dependencies = set() dependencies = set()
roots: set[Path] = set() roots: set[Path] = set()
package_dir = self.root / "build" / self.package.base / "pkg" for package in self.package.packages:
package_dir = self.root / "build" / self.package.base / "pkg" / package
for path in filter(lambda p: p.is_file(), walk(package_dir)): for path in filter(lambda p: p.is_file(), walk(package_dir)):
dependencies.update(PackageArchive.dynamic_needed(path)) dependencies.update(PackageArchive.dynamic_needed(path))
filesystem_path = Path(*path.relative_to(package_dir).parts[1:]) filesystem_path = Path(*path.relative_to(package_dir).parts)
roots.update(filesystem_path.parents[:-1]) # last element is always . because paths are relative roots.update(filesystem_path.parents[:-1]) # last element is always . because paths are relative
return dependencies, roots return dependencies, roots

View File

@ -188,10 +188,11 @@ def test_depends_on_paths(package_archive_ahriman: PackageArchive, mocker: Mocke
""" """
must correctly extract dependencies must correctly extract dependencies
""" """
package_dir = package_archive_ahriman.root / "build" / package_archive_ahriman.package.base / "pkg" package_dir = package_archive_ahriman.root / "build" / \
package_archive_ahriman.package.base / "pkg" / package_archive_ahriman.package.base
dynamic_mock = mocker.patch("ahriman.models.package_archive.PackageArchive.dynamic_needed", return_value=["lib"]) dynamic_mock = mocker.patch("ahriman.models.package_archive.PackageArchive.dynamic_needed", return_value=["lib"])
walk_mock = mocker.patch("ahriman.models.package_archive.walk", return_value=[ walk_mock = mocker.patch("ahriman.models.package_archive.walk", return_value=[
package_dir / package_archive_ahriman.package.base / "root" / "file", package_dir / "root" / "file",
Path("directory"), Path("directory"),
]) ])
mocker.patch("pathlib.Path.is_file", autospec=True, side_effect=lambda path: path != Path("directory")) mocker.patch("pathlib.Path.is_file", autospec=True, side_effect=lambda path: path != Path("directory"))
@ -199,7 +200,7 @@ def test_depends_on_paths(package_archive_ahriman: PackageArchive, mocker: Mocke
dependencies, roots = package_archive_ahriman.depends_on_paths() dependencies, roots = package_archive_ahriman.depends_on_paths()
assert dependencies == {"lib"} assert dependencies == {"lib"}
assert roots == {Path("root")} assert roots == {Path("root")}
dynamic_mock.assert_called_once_with(package_dir / package_archive_ahriman.package.base / "root" / "file") dynamic_mock.assert_called_once_with(package_dir / "root" / "file")
walk_mock.assert_called_once_with(package_dir) walk_mock.assert_called_once_with(package_dir)