mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-06 10:03:49 -06:00
fix: read the data registry from --platforms-dir
This commit is contained in:
1 parent
d205d0bbc8
commit
2e2fe2944c
2 files changed
+31
-1
No files matched your search
@@ -1230,6 +1230,7 @@ def generate_emulator_pack(
|
|||||||
required_only: bool = False,
|
required_only: bool = False,
|
||||||
regions: list[str] | None = None,
|
regions: list[str] | None = None,
|
||||||
offline: bool | None = None,
|
offline: bool | None = None,
|
||||||
|
platforms_dir: str | None = None,
|
||||||
) -> str | None:
|
) -> str | None:
|
||||||
"""Generate a ZIP pack for specific emulator profiles."""
|
"""Generate a ZIP pack for specific emulator profiles."""
|
||||||
all_profiles = load_emulator_profiles(emulators_dir, skip_aliases=False)
|
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
|
seen_hashes: set[str] = set() # SHA1 dedup for same file, different path
|
||||||
data_dir_notices: list[str] = []
|
data_dir_notices: list[str] = []
|
||||||
data_registry = load_data_dir_registry(
|
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:
|
with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zf:
|
||||||
@@ -1500,6 +1501,7 @@ def generate_system_pack(
|
|||||||
required_only: bool = False,
|
required_only: bool = False,
|
||||||
regions: list[str] | None = None,
|
regions: list[str] | None = None,
|
||||||
offline: bool | None = None,
|
offline: bool | None = None,
|
||||||
|
platforms_dir: str | None = None,
|
||||||
) -> str | None:
|
) -> str | None:
|
||||||
"""Generate a ZIP pack for all emulators supporting given system IDs."""
|
"""Generate a ZIP pack for all emulators supporting given system IDs."""
|
||||||
profiles = load_emulator_profiles(emulators_dir)
|
profiles = load_emulator_profiles(emulators_dir)
|
||||||
@@ -1549,6 +1551,7 @@ def generate_system_pack(
|
|||||||
required_only=required_only,
|
required_only=required_only,
|
||||||
regions=regions,
|
regions=regions,
|
||||||
offline=offline,
|
offline=offline,
|
||||||
|
platforms_dir=platforms_dir,
|
||||||
)
|
)
|
||||||
if result:
|
if result:
|
||||||
# Rename to system-based name. Every dimension goes through the one
|
# Rename to system-based name. Every dimension goes through the one
|
||||||
@@ -2697,6 +2700,7 @@ def main():
|
|||||||
required_only=args.required_only,
|
required_only=args.required_only,
|
||||||
regions=getattr(args, "regions", None),
|
regions=getattr(args, "regions", None),
|
||||||
offline=args.offline,
|
offline=args.offline,
|
||||||
|
platforms_dir=args.platforms_dir,
|
||||||
)
|
)
|
||||||
if not built:
|
if not built:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
@@ -2717,6 +2721,7 @@ def main():
|
|||||||
required_only=args.required_only,
|
required_only=args.required_only,
|
||||||
regions=getattr(args, "regions", None),
|
regions=getattr(args, "regions", None),
|
||||||
offline=args.offline,
|
offline=args.offline,
|
||||||
|
platforms_dir=args.platforms_dir,
|
||||||
)
|
)
|
||||||
if not built:
|
if not built:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|||||||
@@ -71,5 +71,30 @@ class VerifyRefusesWhatAModeDoesNotRead(unittest.TestCase):
|
|||||||
self.assertEqual(seen, ["elsewhere"])
|
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__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
Reference in new issue
Block a user