mirror of
https://github.com/kk7ds/chirp.git
synced 2024-09-21 18:47:18 +00:00
90027b4850
This must be a list (or RadioSettingGroup) of RadioSetting objects.
61 lines
2.2 KiB
Python
61 lines
2.2 KiB
Python
from chirp import chirp_common
|
|
from chirp import settings
|
|
from tests import base
|
|
|
|
|
|
class TestCaseSettings(base.DriverTest):
|
|
def test_has_settings(self):
|
|
return
|
|
settings = self.radio.get_settings()
|
|
if settings:
|
|
self.assertFalse(self.rf.has_settings,
|
|
'Radio returned settings but has_settings=False')
|
|
else:
|
|
self.assertTrue(self.rf.has_settings,
|
|
'Radio returned no settings but has_settings=True')
|
|
|
|
@base.requires_feature('has_settings')
|
|
def test_get_settings(self):
|
|
lst = self.radio.get_settings()
|
|
self.assertIsInstance(lst, list)
|
|
|
|
@base.requires_feature('has_settings')
|
|
def test_same_settings(self):
|
|
o = self.radio.get_settings()
|
|
self.radio.set_settings(o)
|
|
n = self.radio.get_settings()
|
|
list(map(self.compare_settings, o, n))
|
|
|
|
def compare_settings(self, a, b):
|
|
try:
|
|
if isinstance(a, settings.RadioSettingValue):
|
|
raise StopIteration
|
|
list(map(self.compare_settings, a, b))
|
|
except StopIteration:
|
|
self.assertEqual(a.get_value(), b.get_value(),
|
|
'Setting value changed from %r to %r' % (
|
|
a.get_value(), b.get_value()))
|
|
|
|
def test_memory_extra_frozen(self):
|
|
# Find the first non-empty memory and try to set it back as a
|
|
# FrozenMemory to make sure the driver does not try to modify
|
|
# any of the settings.
|
|
for i in range(*self.rf.memory_bounds):
|
|
m = self.radio.get_memory(i)
|
|
if not m.empty:
|
|
self.radio.set_memory(chirp_common.FrozenMemory(m))
|
|
break
|
|
|
|
def test_memory_extra_flat(self):
|
|
for i in range(*self.rf.memory_bounds):
|
|
m = self.radio.get_memory(i)
|
|
if not m.empty:
|
|
self.assertIsInstance(
|
|
m.extra,
|
|
(list, settings.RadioSettingGroup),
|
|
'mem.extra must be a list or RadioSettingGroup')
|
|
for e in m.extra:
|
|
self.assertIsInstance(
|
|
e, settings.RadioSetting,
|
|
'mem.extra items must be RadioSetting objects')
|