feat: publish a Logiqx DAT per setup

This commit is contained in:
Abdessamad Derraz committed 2026-11-05 12:13:47 +01:00
1 parent 398246b064
commit 4efd64be70
2 files changed
+105 -8

No files matched your search

+26
View File
@@ -5296,6 +5296,32 @@ class TheCollectionShipsADat(unittest.TestCase):
self.assertIn(("Nintendo\\GameCube", "GC\\USA\\IPL.bin"), roms)
self.assertEqual(roms[("Sony\\PlayStation", "scph5501.bin")].crc32, "8d8cb7e4")
def test_each_setup_has_a_dat_of_its_installed_folder(self):
"""A Batocera user auditing share/bios against the collection DAT met
thousands of sets laid out by manufacturer, and nothing of the folder
Batocera reads."""
sys.path.insert(0, str(ROOT / "scripts" / "scraper"))
from logiqx_parser import parse_logiqx
from scripts.generate_site import _platform_data_links, platform_dat
db = {"files": {"a" * 40: {"size": 4, "crc32": "8D8CB7E4", "md5": "1" * 32,
"sha1": "a" * 40}}}
manifest = {
"platform": "batocera", "display_name": "Batocera", "base_destination": "bios",
"files": [{"dest": "dc/naomi2.zip", "sha1": "a" * 40, "size": 4},
{"dest": "saves/x.bin", "sha1": "a" * 40, "size": 4, "root": "save"}],
"data_directories": [{"dest": "dolphin-emu/Sys",
"files": {"GC/font.bin": {"sha1": "c" * 40, "size": 2}}}],
}
dat = parse_logiqx(platform_dat(manifest, db, {"c" * 40: {"md5": "3" * 32}},
"2026-11-05T00:00:00Z"))
roms = {(r.game, r.name): r for r in dat.roms}
self.assertEqual(set(roms), {("bios", "dc\\naomi2.zip"),
("bios", "dolphin-emu\\Sys\\GC\\font.bin")})
self.assertEqual(roms[("bios", "dc\\naomi2.zip")].md5, "1" * 32)
self.assertEqual(roms[("bios", "dolphin-emu\\Sys\\GC\\font.bin")].md5, "3" * 32)
self.assertIn("[DAT](../downloads/dat/batocera.dat)", _platform_data_links("batocera"))
class ZippedFileMd5IsParsedOnce(unittest.TestCase):