From 50ef46a224e099bebca7722193d3fd95a8336ed1 Mon Sep 17 00:00:00 2001 From: kienle <kienle@passcal.nmt.edu> Date: Tue, 27 Sep 2022 15:16:10 -0600 Subject: [PATCH] Add tests for checkSOHChan --- tests/test_model/test_handling_data.py | 56 +++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/tests/test_model/test_handling_data.py b/tests/test_model/test_handling_data.py index d5762c67c..e2ed926fd 100644 --- a/tests/test_model/test_handling_data.py +++ b/tests/test_model/test_handling_data.py @@ -559,7 +559,7 @@ class TestSaveData2File(TestCase): class TestCheckChan(TestCase): def setUp(self) -> None: - self.req_soh_chans = ['LCE', 'LCQ', 'VM1'] + self.req_soh_chans = ['LCE', 'LCQ'] self.req_wf_chans = ['LHE', 'HHE'] check_soh_chan_patcher = patch( @@ -591,13 +591,57 @@ class TestCheckChan(TestCase): self.assertTrue(self.mock_check_wf_chan.called) def test_channel_is_soh_and_is_requested(self): - soh_channel = 'LCE' - ret = checkChan(soh_channel, self.req_soh_chans, self.req_wf_chans) - self.assertEqual(ret, 'SOH') - self.assertTrue(self.mock_check_soh_chan.called) + with self.subTest('test_normal_channel'): + soh_channel = 'LCE' + ret = checkChan(soh_channel, self.req_soh_chans, self.req_wf_chans) + self.assertEqual(ret, 'SOH') + self.assertTrue(self.mock_check_soh_chan.called) + self.mock_check_soh_chan.reset_mock() + with self.subTest('test_mass_position_channel'): + soh_channel = 'VM1' + ret = checkChan(soh_channel, self.req_soh_chans, self.req_wf_chans) + self.assertEqual(ret, 'SOH') + self.assertTrue(self.mock_check_soh_chan.called) def test_channel_is_soh_but_not_requested(self): soh_channel = 'VKI' ret = checkChan(soh_channel, self.req_soh_chans, self.req_wf_chans) self.assertFalse(ret) - self.assertTrue(self.mock_check_soh_chan.called) \ No newline at end of file + self.assertTrue(self.mock_check_soh_chan.called) + + +class TestCheckSohChan(TestCase): + def setUp(self) -> None: + self.req_soh_chans = ['LCE', 'LCQ', 'EX?'] + # Generated using the builtin random library with a seed of + # 22589824271860044. This seed is obtained by converting the string + # PASSCAL to bytes and converting the resulting bytes to an integer + # with big endian ordering. + self.sample_channel_ids = ['ODV', 'QGA', 'NF4', 'OLY', 'UZM'] + + def test_all_channels_requested(self): + self.req_soh_chans = [] + + for channel_id in self.sample_channel_ids: + self.assertTrue(checkSOHChan(channel_id, self.req_soh_chans)) + + def test_channel_is_requested(self): + with self.subTest('test_normal_channels'): + channel_id = 'LCE' + self.assertTrue(checkSOHChan(channel_id, self.req_soh_chans)) + with self.subTest('test_mass_position_channels'): + base_channel_id = 'VM' + channel_suffixes = ['0', '1', '2', '3', '4', '5', '6'] + for suffix in channel_suffixes: + channel_id = base_channel_id + suffix + self.assertTrue(checkSOHChan(channel_id, self.req_soh_chans)) + with self.subTest('test_external_soh_channels'): + base_channel_id = 'EX' + channel_suffixes = ['1', '2', '3'] + for suffix in channel_suffixes: + channel_id = base_channel_id + suffix + self.assertTrue(checkSOHChan(channel_id, self.req_soh_chans)) + + def test_channel_not_requested(self): + for channel_id in self.sample_channel_ids: + self.assertFalse(checkSOHChan(channel_id, self.req_soh_chans)) \ No newline at end of file -- GitLab