mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 21:43:23 -05:00
fix: read the data registry from --platforms-dir
This commit is contained in:
1 parent
dce43a1281
commit
f159d35f18
2 files changed
+31
-1
No files matched your search
@@ -1230,6 +1230,7 @@ def generate_emulator_pack(
|
||||
required_only: bool = False,
|
||||
regions: list[str] | None = None,
|
||||
offline: bool | None = None,
|
||||
platforms_dir: str | None = None,
|
||||
) -> str | None:
|
||||
"""Generate a ZIP pack for specific emulator profiles."""
|
||||
all_profiles = load_emulator_profiles(emulators_dir, skip_aliases=False)
|
||||
@@ -1269,7 +1270,7 @@ def generate_emulator_pack(
|
||||
seen_hashes: set[str] = set() # SHA1 dedup for same file, different path
|
||||
data_dir_notices: list[str] = []
|
||||
data_registry = load_data_dir_registry(
|
||||
os.path.join(os.path.dirname(__file__), "..", "platforms")
|
||||
platforms_dir or os.path.join(os.path.dirname(__file__), "..", "platforms")
|
||||
)
|
||||
|
||||
with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zf:
|
||||
@@ -1500,6 +1501,7 @@ def generate_system_pack(
|
||||
required_only: bool = False,
|
||||
regions: list[str] | None = None,
|
||||
offline: bool | None = None,
|
||||
platforms_dir: str | None = None,
|
||||
) -> str | None:
|
||||
"""Generate a ZIP pack for all emulators supporting given system IDs."""
|
||||
profiles = load_emulator_profiles(emulators_dir)
|
||||
@@ -1549,6 +1551,7 @@ def generate_system_pack(
|
||||
required_only=required_only,
|
||||
regions=regions,
|
||||
offline=offline,
|
||||
platforms_dir=platforms_dir,
|
||||
)
|
||||
if result:
|
||||
# Rename to system-based name. Every dimension goes through the one
|
||||
@@ -2697,6 +2700,7 @@ def main():
|
||||
required_only=args.required_only,
|
||||
regions=getattr(args, "regions", None),
|
||||
offline=args.offline,
|
||||
platforms_dir=args.platforms_dir,
|
||||
)
|
||||
if not built:
|
||||
sys.exit(1)
|
||||
@@ -2717,6 +2721,7 @@ def main():
|
||||
required_only=args.required_only,
|
||||
regions=getattr(args, "regions", None),
|
||||
offline=args.offline,
|
||||
platforms_dir=args.platforms_dir,
|
||||
)
|
||||
if not built:
|
||||
sys.exit(1)
|
||||
|
||||
@@ -71,5 +71,30 @@ class VerifyRefusesWhatAModeDoesNotRead(unittest.TestCase):
|
||||
self.assertEqual(seen, ["elsewhere"])
|
||||
|
||||
|
||||
class EmulatorPackReadsThePlatformsDir(unittest.TestCase):
|
||||
def test_the_registry_comes_from_the_given_dir(self):
|
||||
sys.path.insert(0, str(REPO_ROOT / "scripts"))
|
||||
import generate_pack # noqa: PLC0415
|
||||
|
||||
seen: list[str] = []
|
||||
|
||||
def registry(path: str) -> dict:
|
||||
seen.append(str(path))
|
||||
return {}
|
||||
|
||||
db = {"files": {}, "indexes": {"by_name": {}, "by_md5": {}}}
|
||||
out = REPO_ROOT / "tmp" / "emupack-registry"
|
||||
with mock.patch.object(generate_pack, "load_data_dir_registry", registry):
|
||||
generate_pack.generate_emulator_pack(
|
||||
["handy"], str(REPO_ROOT / "emulators"), db, "bios", str(out),
|
||||
zip_contents={}, platforms_dir="elsewhere",
|
||||
)
|
||||
for leftover in out.glob("*"):
|
||||
leftover.unlink()
|
||||
if out.exists():
|
||||
out.rmdir()
|
||||
self.assertEqual(seen, ["elsewhere"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user