cdrom: Always test generic implementation

This commit is contained in:
Philipp Wolfer
2021-11-11 08:00:19 +01:00
parent 5e4cac7184
commit 2ea94a4d21
2 changed files with 25 additions and 9 deletions

View File

@@ -56,6 +56,15 @@ if discid is not None:
LINUX_CDROM_INFO = '/proc/sys/dev/cdrom/info'
def _generic_iter_drives():
config = get_config()
yield from (
device.strip() for device
in config.setting["cd_lookup_device"].split(",")
if device and not device.isspace()
)
def _parse_linux_cdrom_info(f):
drive_names = []
drive_audio_caps = []
@@ -106,14 +115,7 @@ else:
# There might be more drives we couldn't detect
# setting uses a text field instead of a drop-down
AUTO_DETECT_DRIVES = False
def _iter_drives():
config = get_config()
yield from (
device.strip() for device
in config.setting["cd_lookup_device"].split(",")
if device and not device.isspace()
)
_iter_drives = _generic_iter_drives
def get_cdrom_drives():

View File

@@ -100,7 +100,21 @@ class GetCdromDrivesTest(PicardTestCase):
def test_get_cdrom_drives(self):
self.set_config_values({"cd_lookup_device": "/dev/cdrom"})
self.assertIsInstance(cdrom.get_cdrom_drives(), Iterable)
# Independent of the implementation get_cdrom_drives must not rais
# and return an Iterable.
drives = cdrom.get_cdrom_drives()
self.assertIsInstance(drives, Iterable)
self.assertTrue(set(cdrom.DEFAULT_DRIVES).issubset(drives))
def test_generic_iter_drives(self):
self.set_config_values({"cd_lookup_device": "/dev/cdrom"})
self.assertEqual(["/dev/cdrom"], list(cdrom._generic_iter_drives()))
self.set_config_values({"cd_lookup_device": "/dev/cdrom, /dev/sr0"})
self.assertEqual(["/dev/cdrom", "/dev/sr0"], list(cdrom._generic_iter_drives()))
self.set_config_values({"cd_lookup_device": ""})
self.assertEqual([], list(cdrom._generic_iter_drives()))
self.set_config_values({"cd_lookup_device": " ,, ,\t, "})
self.assertEqual([], list(cdrom._generic_iter_drives()))
@unittest.skipUnless(IS_WIN, "windows test")