feat: one card list and one card check

Every system that runs from its SD card comes from card_setups(),
derived from the device rules: the setup list, its filter, --platform
and the line menus give each its own row and ask for its card. The
RetroArch row no longer lists handheld systems.

card_root_folder and card_choice share one identity check: another
system's card is refused for every system, KNULLI and ROCKNIX included,
and the same --dest gives the same folder from every entry point. WSL
drive letters are read as typed, the line question lists only that
system's cards and asks again after no.

Offline at a terminal, files left out count as missing: the run ends
with code 1 or 2, as the full screen does. Continue on the systems list
opens Confirm. Wording and layout points of code_audit_13 and
tui_audit_6.
This commit is contained in:
Abdessamad Derraz committed 2026-10-27 02:55:29 +01:00
1 parent 55becb8aa4
commit d1d88fed27
26 files changed
+1555 -506

No files matched your search

+4 -4
View File
@@ -379,7 +379,7 @@ class MisplacedInTheBiosFolder(Scratch):
for name, data in PAYLOAD.items():
self.assertEqual((self.dest / name).read_bytes(), data)
self.assertEqual((self.dest / "system" / name).read_bytes(), data)
self.assertIn("4 files fixed from copies already in the BIOS folder.", proc.stdout)
self.assertIn("4 files copied from the wrong place in the BIOS folder.", proc.stdout)
self.assertIn("nested folder: it is at system/system/scph5501.bin", proc.stdout)
def test_a_pack_extracted_into_a_folder_of_its_own_is_fixed(self):
@@ -405,7 +405,7 @@ class MisplacedInTheBiosFolder(Scratch):
self.assertEqual(proc.returncode, 0, proc.stdout + proc.stderr)
self.assertEqual((self.dest / "gba_bios.bin").read_bytes(), GBA)
self.assertEqual((self.dest / "GBA_BIOS.BIN").read_bytes(), GBA)
self.assertIn("1 file fixed from copies already in the BIOS folder.", proc.stdout)
self.assertIn("1 file copied from the wrong place in the BIOS folder.", proc.stdout)
def test_a_file_left_in_its_zip_is_extracted(self):
self.complete("gba_bios.bin")
@@ -1008,10 +1008,10 @@ class TheSummaryLine(unittest.TestCase):
def test_one_file_and_fixes(self):
self.assertEqual(install.sources_line([("/old", 1)], fixed=3, downloaded=0, missing=0),
"1 file copied from /old, 3 fixed from copies already in the "
"1 file copied from /old, 3 copied from the wrong place in the "
"BIOS folder.")
self.assertEqual(install.sources_line([], fixed=2, downloaded=1, missing=0),
"2 files fixed from copies already in the BIOS folder, "
"2 files copied from the wrong place in the BIOS folder, "
"1 downloaded.")
def test_nothing_copied_is_no_line(self):