1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
try:
import mox
except ImportError:
from mox3 import mox
from tests.unit import base
__builtins__["_"] = lambda s: s
memedit = None
class TestEdits(base.BaseTest):
def setUp(self):
global memedit
super(TestEdits, self).setUp()
base.mock_gtk()
from chirp.ui import memedit as memedit_module
memedit = memedit_module
def tearDown(self):
super(TestEdits, self).tearDown()
base.unmock_gtk()
def _test_tone_column_change(self, col,
ini_tmode='', ini_cmode='',
exp_tmode=None, exp_cmode=None):
editor = self.mox.CreateMock(memedit.MemoryEditor)
editor._config = self.mox.CreateMockAnything()
editor._config.get_bool("no_smart_tmode").AndReturn(False)
editor.col = lambda x: x
editor.store = self.mox.CreateMockAnything()
editor.store.get_iter('path').AndReturn('iter')
editor.store.get('iter', 'Tone Mode', 'Cross Mode').AndReturn(
(ini_tmode, ini_cmode))
if exp_tmode:
editor.store.set('iter', 'Tone Mode', exp_tmode)
if exp_cmode and col != 'Cross Mode':
editor.store.set('iter', 'Cross Mode', exp_cmode)
self.mox.ReplayAll()
memedit.MemoryEditor.ed_tone_field(editor, None, 'path', None, col)
def _test_auto_tone_mode(self, col, exp_tmode, exp_cmode):
cross_exp_cmode = (exp_tmode == "Cross" and exp_cmode or None)
# No tmode -> expected tmode, maybe requires cross mode change
self._test_tone_column_change(col, exp_tmode=exp_tmode,
exp_cmode=cross_exp_cmode)
# Expected tmode does not re-set tmode, may change cmode
self._test_tone_column_change(col, ini_tmode=exp_tmode,
exp_cmode=cross_exp_cmode)
# Invalid tmode -> expected, may change cmode
self._test_tone_column_change(col, ini_tmode="foo",
exp_tmode=exp_tmode,
exp_cmode=cross_exp_cmode)
# Expected cmode does not re-set cmode
self._test_tone_column_change(col, ini_tmode="Cross",
ini_cmode=exp_cmode)
# Invalid cmode -> expected
self._test_tone_column_change(col, ini_tmode="Cross",
ini_cmode="foo", exp_cmode=exp_cmode)
def test_auto_tone_mode_tone(self):
self._test_auto_tone_mode('Tone', 'Tone', 'Tone->Tone')
def test_auto_tone_mode_tsql(self):
self._test_auto_tone_mode('ToneSql', 'TSQL', 'Tone->Tone')
def test_auto_tone_mode_dtcs(self):
self._test_auto_tone_mode('DTCS Code', 'DTCS', 'DTCS->')
def test_auto_tone_mode_dtcs_rx(self):
self._test_auto_tone_mode('DTCS Rx Code', 'Cross', '->DTCS')
def test_auto_tone_mode_dtcs_pol(self):
self._test_auto_tone_mode('DTCS Pol', 'DTCS', 'DTCS->')
def test_auto_tone_mode_cross(self):
self._test_auto_tone_mode('Cross Mode', 'Cross', 'Tone->Tone')
|