mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 05:53:23 -05:00
68 lines
2.5 KiB
Python
68 lines
2.5 KiB
Python
"""A core extra competes for a region only with files of its own machine.
|
|
|
|
CLK profiles 30 systems and names none per file. Its extras were filed in
|
|
the region group of every one of them: its American MSX ROM made RetroDECK's
|
|
Enterprise group drop the German Enterprise ROM under --region us.
|
|
"""
|
|
|
|
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 packextras import extra_region_groups # noqa: E402
|
|
|
|
|
|
class TheGroupFollowsWhatTheProfileSays(unittest.TestCase):
|
|
def test_a_file_system(self):
|
|
self.assertEqual(
|
|
extra_region_groups({"source_system": "msx", "source_systems": ["msx", "vic20"]}),
|
|
["msx"],
|
|
)
|
|
|
|
def test_a_single_system_profile(self):
|
|
self.assertEqual(extra_region_groups({"source_systems": ["sega-saturn"]}), ["sega-saturn"])
|
|
|
|
def test_a_multi_system_profile_without_a_file_system(self):
|
|
groups = extra_region_groups({
|
|
"source_emulator": "clk", "destination": "MSX/msx-american.rom",
|
|
"source_systems": ["msx", "enterprise-64-128", "vic20"],
|
|
})
|
|
self.assertEqual(groups, ["clk:file:MSX/msx-american.rom"])
|
|
|
|
def test_a_variant_group_stays_one_slot(self):
|
|
self.assertEqual(
|
|
extra_region_groups({"source_emulator": "picodrive", "variant_group": "mcd",
|
|
"source_systems": ["sega-segacd", "sega-mega-cd"]}),
|
|
["picodrive:variant:mcd"],
|
|
)
|
|
|
|
|
|
class TheEnterpriseKeepsItsRom(unittest.TestCase):
|
|
def test_retrodeck_keeps_brd_rom_under_a_region(self):
|
|
if not (REPO_ROOT / "database.json").exists():
|
|
self.skipTest("database.json is not built")
|
|
import region
|
|
from common import load_database, load_emulator_profiles, load_platform_config
|
|
from packextras import platform_region_groups
|
|
|
|
db = load_database(str(REPO_ROOT / "database.json"))
|
|
profiles = load_emulator_profiles(str(REPO_ROOT / "emulators"))
|
|
config = load_platform_config("retrodeck", str(REPO_ROOT / "platforms"))
|
|
groups, _ = platform_region_groups(
|
|
config, config["systems"], str(REPO_ROOT / "emulators"), db,
|
|
config.get("base_destination", ""), profiles,
|
|
)
|
|
drops = region.resolve_region_drops(
|
|
groups, region.build_region_index(profiles), ["north-america"]
|
|
)
|
|
self.assertNotIn("bios/brd.rom", drops)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|