From e99416456afd4aa8bde42016826f9a345291cbf3 Mon Sep 17 00:00:00 2001 From: Matthew Poletiek Date: Tue, 8 Dec 2020 21:03:16 -0600 Subject: Initial Commit --- tests/unit/test_memedit_edits.py | 82 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 tests/unit/test_memedit_edits.py (limited to 'tests/unit/test_memedit_edits.py') 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') -- cgit v1.2.3