Fix import of stat_triplet
Some checks failed
CI / test (push) Successful in 49s
CI / test (almalinux, docker.io/library/almalinux:9, python3.11) (push) Failing after 9m3s
CI / test (debian, docker.io/library/debian:13, python3) (push) Failing after 12m13s
Lint / test (push) Successful in 46s

This commit is contained in:
Miguel Jacq 2026-06-29 14:51:32 +10:00
parent 3c1e08bdde
commit b546bb9bf2
Signed by: mig5
GPG key ID: 03906B4110AAD3B8
3 changed files with 16 additions and 9 deletions

View file

@ -4,7 +4,6 @@ import glob
import os import os
from typing import Dict, List, Optional, Set from typing import Dict, List, Optional, Set
from .. import harvest as h
from ..capture import capture_file, capture_link from ..capture import capture_file, capture_link
from ..harvest_types import ( from ..harvest_types import (
ExcludedFile, ExcludedFile,
@ -16,7 +15,12 @@ from ..harvest_types import (
) )
from ..system_paths import MAX_FILES_CAP from ..system_paths import MAX_FILES_CAP
from ..pathfilter import expand_includes from ..pathfilter import expand_includes
from ..fsutil import is_dir_no_symlink_components, path_has_symlink_component from ..fsutil import (
is_dir_no_symlink_components,
path_has_symlink_component,
stat_dir_triplet,
stat_triplet,
)
from .context import HarvestCollector, HarvestContext from .context import HarvestCollector, HarvestContext
@ -78,7 +82,7 @@ class UsrLocalCustomCollector(HarvestCollector):
if not os.path.isfile(path) or os.path.islink(path): if not os.path.isfile(path) or os.path.islink(path):
continue continue
try: try:
owner, group, mode = h.stat_triplet(path) owner, group, mode = stat_triplet(path)
except OSError: except OSError:
self.excluded.append(ExcludedFile(path=path, reason="unreadable")) self.excluded.append(ExcludedFile(path=path, reason="unreadable"))
continue continue
@ -254,7 +258,7 @@ class ExtraPathsCollector(HarvestCollector):
deny = None deny = None
if not deny: if not deny:
try: try:
owner, group, mode = h.stat_dir_triplet(dirpath) owner, group, mode = stat_dir_triplet(dirpath)
self.managed_dirs.append( self.managed_dirs.append(
ManagedDir( ManagedDir(
path=dirpath, path=dirpath,

View file

@ -10,6 +10,7 @@ from enroll.platform import PlatformInfo
from enroll.systemd import UnitInfo from enroll.systemd import UnitInfo
from enroll.pathfilter import PathFilter from enroll.pathfilter import PathFilter
import enroll.capture as capture import enroll.capture as capture
from enroll.harvest_collectors import paths as path_collectors
from enroll.capture import ( from enroll.capture import (
capture_file as _capture_file, capture_file as _capture_file,
capture_link as _capture_link, capture_link as _capture_link,
@ -255,7 +256,7 @@ def test_harvest_dedup_manual_packages_and_builds_etc_custom(
# /usr/local/bin/readme.txt remains non-executable # /usr/local/bin/readme.txt remains non-executable
return ("root", "root", "0644") return ("root", "root", "0644")
monkeypatch.setattr(harvest, "stat_triplet", fake_stat_triplet) monkeypatch.setattr(path_collectors, "stat_triplet", fake_stat_triplet)
monkeypatch.setattr(harvest, "stat_dir_triplet", fake_stat_triplet) monkeypatch.setattr(harvest, "stat_dir_triplet", fake_stat_triplet)
monkeypatch.setattr(capture, "stat_triplet", fake_stat_triplet) monkeypatch.setattr(capture, "stat_triplet", fake_stat_triplet)
@ -400,7 +401,9 @@ def test_shared_cron_snippet_prefers_matching_role_over_lexicographic(
) )
monkeypatch.setattr(harvest, "get_backend", lambda info=None: backend) monkeypatch.setattr(harvest, "get_backend", lambda info=None: backend)
monkeypatch.setattr(harvest, "stat_triplet", lambda p: ("root", "root", "0644")) monkeypatch.setattr(
path_collectors, "stat_triplet", lambda p: ("root", "root", "0644")
)
monkeypatch.setattr(harvest, "stat_dir_triplet", lambda p: ("root", "root", "0755")) monkeypatch.setattr(harvest, "stat_dir_triplet", lambda p: ("root", "root", "0755"))
monkeypatch.setattr(capture, "stat_triplet", lambda p: ("root", "root", "0644")) monkeypatch.setattr(capture, "stat_triplet", lambda p: ("root", "root", "0644"))
monkeypatch.setattr(harvest, "collect_non_system_users", lambda: []) monkeypatch.setattr(harvest, "collect_non_system_users", lambda: [])

View file

@ -285,7 +285,7 @@ def test_extra_paths_collector_records_dirs_files_notes_and_excludes(
) )
return True return True
monkeypatch.setattr(paths.h, "stat_dir_triplet", fake_stat_triplet) monkeypatch.setattr(paths, "stat_dir_triplet", fake_stat_triplet)
monkeypatch.setattr(paths, "capture_file", lambda *a, **kw: fake_capture_file(**kw)) monkeypatch.setattr(paths, "capture_file", lambda *a, **kw: fake_capture_file(**kw))
ctx = _context( ctx = _context(
@ -321,7 +321,7 @@ def test_extra_paths_collector_skips_already_captured_files(monkeypatch, tmp_pat
file_path.write_text("ok", encoding="utf-8") file_path.write_text("ok", encoding="utf-8")
calls: list[str] = [] calls: list[str] = []
monkeypatch.setattr(paths.h, "stat_dir_triplet", lambda p: ("root", "root", "0755")) monkeypatch.setattr(paths, "stat_dir_triplet", lambda p: ("root", "root", "0755"))
monkeypatch.setattr( monkeypatch.setattr(
paths, "capture_file", lambda *a, **kw: calls.append(kw["abs_path"]) or True paths, "capture_file", lambda *a, **kw: calls.append(kw["abs_path"]) or True
) )
@ -383,7 +383,7 @@ def test_usr_local_custom_collector_scans_executable_bin_and_notes_cap(
monkeypatch.setattr(paths.os, "walk", fake_walk) monkeypatch.setattr(paths.os, "walk", fake_walk)
monkeypatch.setattr(paths.os.path, "isfile", fake_isfile) monkeypatch.setattr(paths.os.path, "isfile", fake_isfile)
monkeypatch.setattr(paths.os.path, "islink", lambda p: False) monkeypatch.setattr(paths.os.path, "islink", lambda p: False)
monkeypatch.setattr(paths.h, "stat_triplet", fake_stat_triplet) monkeypatch.setattr(paths, "stat_triplet", fake_stat_triplet)
monkeypatch.setattr(paths, "capture_file", lambda *a, **kw: fake_capture_file(**kw)) monkeypatch.setattr(paths, "capture_file", lambda *a, **kw: fake_capture_file(**kw))
ctx = _context(tmp_path) ctx = _context(tmp_path)