feat: add include_all to _collect_emulator_extras

This commit is contained in:
Abdessamad Derraz
2026-04-01 14:33:54 +02:00
parent b070fa41de
commit 9c6b3dfe96
2 changed files with 32 additions and 1 deletions

View File

@@ -457,6 +457,7 @@ def _collect_emulator_extras(
base_dest: str, base_dest: str,
emu_profiles: dict | None = None, emu_profiles: dict | None = None,
target_cores: set[str] | None = None, target_cores: set[str] | None = None,
include_all: bool = False,
) -> list[dict]: ) -> list[dict]:
"""Collect core requirement files from emulator profiles not in the platform pack. """Collect core requirement files from emulator profiles not in the platform pack.
@@ -491,7 +492,8 @@ def _collect_emulator_extras(
norm_map[_norm_system_id(sid)] = sid norm_map[_norm_system_id(sid)] = sid
undeclared = find_undeclared_files( undeclared = find_undeclared_files(
config, emulators_dir, db, emu_profiles, target_cores=target_cores config, emulators_dir, db, emu_profiles, target_cores=target_cores,
include_all=include_all,
) )
extras = [] extras = []
seen_dests: set[str] = set(seen) seen_dests: set[str] = set(seen)

View File

@@ -4480,6 +4480,35 @@ struct BurnDriver BurnDrvneogeo = {
# Launcher/alias files should still be excluded # Launcher/alias files should still be excluded
self.assertNotIn("launcher_bios.bin", all_names) self.assertNotIn("launcher_bios.bin", all_names)
def test_201_collect_emulator_extras_include_all(self):
"""include_all=True passes through to find_undeclared_files."""
from generate_pack import _collect_emulator_extras
config = self._load_config("test_existence")
profiles = load_emulator_profiles(self.emulators_dir)
base_dest = config.get("base_destination", "")
# Default call must succeed without TypeError
extras = _collect_emulator_extras(
config, self.emulators_dir, self.db, set(), base_dest, profiles
)
self.assertIsInstance(extras, list)
# include_all=True must be accepted and return a list
all_extras = _collect_emulator_extras(
config, self.emulators_dir, self.db, set(), base_dest, profiles,
include_all=True,
)
self.assertIsInstance(all_extras, list)
# include_all=True is a superset: at least as many entries as default
all_names = {e["name"] for e in all_extras}
default_names = {e["name"] for e in extras}
self.assertGreaterEqual(len(all_names), len(default_names))
# All default entries are present in include_all result
for name in default_names:
self.assertIn(name, all_names)
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()