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 9edff2826f
commit fd3c6343f1
2 changed files with 10 additions and 8 deletions

View File

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

View File

@ -188,10 +188,11 @@ def test_depends_on_paths(package_archive_ahriman: PackageArchive, mocker: Mocke
"""
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"])
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"),
])
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()
assert dependencies == {"lib"}
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)