aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/test_memedit_edits.py
diff options
context:
space:
mode:
authorMatthew Poletiek <matthew.poletiek@gmail.com>2020-12-08 21:03:16 -0600
committerMatthew Poletiek <matthew.poletiek@gmail.com>2020-12-08 21:03:16 -0600
commite99416456afd4aa8bde42016826f9a345291cbf3 (patch)
treea7a95639cd1cb5dbe2d91a2ca8e8defafac4296d /tests/unit/test_memedit_edits.py
parent194cf4e5e0b6a2811103a9b739a72b9afe2b886c (diff)
downloadchirp-e99416456afd4aa8bde42016826f9a345291cbf3.tar.gz
chirp-e99416456afd4aa8bde42016826f9a345291cbf3.tar.xz
Initial Commit
Diffstat (limited to 'tests/unit/test_memedit_edits.py')
-rw-r--r--tests/unit/test_memedit_edits.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/unit/test_memedit_edits.py b/tests/unit/test_memedit_edits.py
new file mode 100644
index 0000000..fdf971c
--- /dev/null
+++ b/tests/unit/test_memedit_edits.py
@@ -0,0 +1,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')