mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
fix: file a slug-platform bios under its own system
This commit is contained in:
1 parent
315549a5b0
commit
2c2f284414
15 files changed
+376
-112
No files matched your search
@@ -0,0 +1,57 @@
|
||||
"""A machine has one system id in the profiles, and a file goes to its own.
|
||||
|
||||
picodrive filed the Mega CD as sega-segacd and fbneo the disk system as
|
||||
nes-fds, where every other profile and every platform says sega-megacd and
|
||||
nintendo-fds. On RomM, which keeps firmware per system folder, picodrive's
|
||||
Mega CD BIOS went to gamegear/, the first of its systems, and fbneo's
|
||||
channelf.zip and SNES DSP sets to colecovision/.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parent.parent
|
||||
sys.path.insert(0, str(REPO_ROOT / "scripts"))
|
||||
|
||||
from common import SYSTEM_ALIASES, load_emulator_profiles # noqa: E402
|
||||
from packextras import _slug_for # noqa: E402
|
||||
|
||||
|
||||
class ProfilesSpellEachMachineOnce(unittest.TestCase):
|
||||
def test_no_profile_uses_an_alias_spelling(self):
|
||||
profiles = load_emulator_profiles(str(REPO_ROOT / "emulators"))
|
||||
found = sorted(
|
||||
f"{name}: {sid}"
|
||||
for name, profile in profiles.items()
|
||||
for sid in [
|
||||
*profile.get("systems", []),
|
||||
*(f.get("system") for f in profile.get("files", []) if f.get("system")),
|
||||
]
|
||||
if str(sid).lower() in SYSTEM_ALIASES
|
||||
)
|
||||
self.assertEqual(sorted(set(found)), [])
|
||||
|
||||
|
||||
class AFileGoesToItsOwnSystemFolder(unittest.TestCase):
|
||||
PROFILES = {"picodrive": {"systems": ["sega-game-gear", "sega-megacd"]}}
|
||||
SYSTEMS = {"sega-game-gear", "sega-mega-cd"}
|
||||
NORM = {"gamegear": "sega-game-gear", "megacd": "sega-mega-cd"}
|
||||
SLUGS = {"sega-game-gear": "gamegear", "sega-mega-cd": "segacd"}
|
||||
|
||||
def slug(self, entry):
|
||||
return _slug_for(entry, self.PROFILES, self.SYSTEMS, self.NORM, self.SLUGS)
|
||||
|
||||
def test_the_entry_system_decides(self):
|
||||
self.assertEqual(
|
||||
self.slug({"profile": "picodrive", "system": "sega-megacd"}), "segacd"
|
||||
)
|
||||
|
||||
def test_without_one_the_emulator_systems_decide(self):
|
||||
self.assertEqual(self.slug({"profile": "picodrive"}), "gamegear")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user