<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'># HG changeset patch<br># User K. Arvanitis &lt;<a href="mailto:kosta@alumni.uvic.ca">kosta@alumni.uvic.ca</a>&gt;<br># Date 1421988817 28800<br>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thu Jan 22 20:53:37 2015 -0800<br># Node ID e347fdbfc9c2ce3a80bf037c2a7667afda8eed13<br># Parent&nbsp; b25606106a9c0cd78f3cc5f602475da64cde081d<br>[PATCH] Add Support for Settings UnitTest<BR>Add a basic unit test&nbsp; coverage of the radio Settings API.<BR>Currently, all but one image passes the test (UV3R).<br>Commented out offending code in uv3r module.<BR>Feature #2235<BR>diff -r b25606106a9c -r e347fdbfc9c2 chirp/baofeng_uv3r.py<br>--- a/chirp/baofeng_uv3r.py&nbsp;Wed Jan 21 23:30:19 2015 -0800<br>+++ b/chirp/baofeng_uv3r.py&nbsp;Thu Jan 22 20:53:37 2015 -0800<br>@@ -421,42 +421,6 @@<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH_FLAG_LIST[_settings.ch_flag]))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basic.append(rs)<br>&nbsp;<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _limit = int(self._memobj.limits.lower_vhf) / 10<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs = RadioSetting("limits.lower_vhf", "VHF Lower Limit (115-239 MHz)",<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RadioSettingValueInteger(115, 235, _limit))<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def apply_limit(setting, obj):<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value = int(setting.value) * 10<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj.lower_vhf = value<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.set_apply_callback(apply_limit, self._memobj.limits)<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basic.append(rs)<br>-<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _limit = int(self._memobj.limits.upper_vhf) / 10<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs = RadioSetting("limits.upper_vhf", "VHF Upper Limit (115-239 MHz)",<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RadioSettingValueInteger(115, 235, _limit))<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def apply_limit(setting, obj):<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value = int(setting.value) * 10<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj.upper_vhf = value<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.set_apply_callback(apply_limit, self._memobj.limits)<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basic.append(rs)<br>-<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _limit = int(self._memobj.limits.lower_uhf) / 10<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs = RadioSetting("limits.lower_uhf", "UHF Lower Limit (200-529 MHz)",<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RadioSettingValueInteger(200, 529, _limit))<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def apply_limit(setting, obj):<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value = int(setting.value) * 10<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj.lower_uhf = value<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.set_apply_callback(apply_limit, self._memobj.limits)<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basic.append(rs)<br>-<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _limit = int(self._memobj.limits.upper_uhf) / 10<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs = RadioSetting("limits.upper_uhf", "UHF Upper Limit (200-529 MHz)",<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RadioSettingValueInteger(200, 529, _limit))<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def apply_limit(setting, obj):<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value = int(setting.value) * 10<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj.upper_uhf = value<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.set_apply_callback(apply_limit, self._memobj.limits)<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basic.append(rs)<br>-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vfo_preset = RadioSettingGroup("vfo_preset", "VFO Presets")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; group.append(vfo_preset)<br>&nbsp;<br>diff -r b25606106a9c -r e347fdbfc9c2 tests/run_tests<br>--- a/tests/run_tests&nbsp;Wed Jan 21 23:30:19 2015 -0800<br>+++ b/tests/run_tests&nbsp;Thu Jan 22 20:53:37 2015 -0800<br>@@ -520,8 +520,30 @@<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.do_badname(rf)<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return []<br>+<br>&nbsp;TESTS["Edges"] = TestCaseEdges<br>&nbsp;<br>+<br>+class TestCaseSettings(TestCase):<br>+&nbsp;&nbsp;&nbsp; def __str__(self):<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "Settings"<br>+<br>+&nbsp;&nbsp;&nbsp; def do_get_settings(self, rf):<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self._wrapper.do("get_settings")<br>+<br>+&nbsp;&nbsp;&nbsp; def run(self):<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rf = self._wrapper.do("get_features")<br>+<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not rf.has_settings:<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; raise TestSkippedError("Settings not supported")<br>+<br>+&nbsp;self.do_get_settings(rf)<br>+<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return []<br>+<br>+TESTS["Settings"] = TestCaseSettings<br>+<br>+<br>&nbsp;class TestCaseBanks(TestCase):<br>&nbsp;&nbsp;&nbsp;&nbsp; def __str__(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "Banks"<br>&nbsp;<BR>                                               </div></body>
</html>