From b1f765998b726838c978bf34a4a5591bcb57a626 Mon Sep 17 00:00:00 2001
From: kienle <kienle@passcal.nmt.edu>
Date: Tue, 27 Sep 2022 11:48:44 -0600
Subject: [PATCH] Add tests for checkChan

---
 tests/test_model/test_handling_data.py | 91 ++++++++++++++++++--------
 1 file changed, 64 insertions(+), 27 deletions(-)

diff --git a/tests/test_model/test_handling_data.py b/tests/test_model/test_handling_data.py
index e8de60b7a..d5762c67c 100644
--- a/tests/test_model/test_handling_data.py
+++ b/tests/test_model/test_handling_data.py
@@ -20,6 +20,9 @@ from sohstationviewer.model.handling_data import (
     readASCII,
     readText,
     saveData2File,
+    checkChan,
+    checkWFChan,
+    checkSOHChan
 )
 from sohstationviewer.model.reftek.from_rt2ms.core import Reftek130
 
@@ -121,18 +124,6 @@ class TestHandlingData(TestCase):
 
         self.assertTrue(mock_save_data_2_file.called)
 
-    # @skip
-    # def test_read_text(self):
-    #     self.fail()
-    #
-    # @skip
-    # def test_save_data2file(self):
-    #     self.fail()
-    #
-    # @skip
-    # def test_check_chan(self):
-    #     self.fail()
-    #
     # @skip
     # def test_check_sohchan(self):
     #     self.fail()
@@ -201,8 +192,8 @@ class TestReadWaveformMSeed(TestCase):
         patcher = patch(
             'sohstationviewer.model.handling_data.readWaveformTrace')
         self.addCleanup(patcher.stop)
-        self.mock_readWaveformTrace = patcher.start()
-        self.mock_readWaveformTrace.return_value = {
+        self.mock_read_waveform_trace = patcher.start()
+        self.mock_read_waveform_trace.return_value = {
             'startTmEpoch': 0,
             'endTmEpoch': 0,
         }
@@ -223,10 +214,10 @@ class TestReadWaveformMSeed(TestCase):
             self.q330_waveform_file, self.q330_waveform_file.name,
             self.station_id, self.channel_id, self.traces_info, self.data_time,
             self.temp_dir.name)
-        self.assertTrue(self.mock_readWaveformTrace.called)
+        self.assertTrue(self.mock_read_waveform_trace.called)
 
     def test_start_data_time_earlier_than_earliest_start_time(self):
-        self.mock_readWaveformTrace.return_value = {
+        self.mock_read_waveform_trace.return_value = {
             'startTmEpoch': 51251,
             'endTmEpoch': 2623623,
         }
@@ -242,7 +233,7 @@ class TestReadWaveformMSeed(TestCase):
     def test_end_data_time_later_than_latest_start_time(self):
         # End time set to be the last second of 9999 so as to be later than the
         # end time of any test data.
-        self.mock_readWaveformTrace.return_value = {
+        self.mock_read_waveform_trace.return_value = {
             'startTmEpoch': 51251,
             'endTmEpoch': 2623623,
         }
@@ -256,7 +247,7 @@ class TestReadWaveformMSeed(TestCase):
         self.assertEqual(self.data_time[1], end_time)
 
     def test_data_time_is_between_earliest_start_and_latest_end_time(self):
-        self.mock_readWaveformTrace.return_value = {
+        self.mock_read_waveform_trace.return_value = {
             'startTmEpoch': 51251,
             'endTmEpoch': 2623623,
         }
@@ -299,8 +290,8 @@ class TestReadWaveformReftek(TestCase):
         patcher = patch(
             'sohstationviewer.model.handling_data.readWaveformTrace')
         self.addCleanup(patcher.stop)
-        self.mock_readWaveformTrace = patcher.start()
-        self.mock_readWaveformTrace.return_value = {
+        self.mock_read_waveform_trace = patcher.start()
+        self.mock_read_waveform_trace.return_value = {
             'startTmEpoch': 0,
             'endTmEpoch': 0,
         }
@@ -335,10 +326,10 @@ class TestReadWaveformReftek(TestCase):
     def test_readWaveformTrace_called(self):
         readWaveformReftek(self.rt130_waveform, self.key, self.read_data,
                            self.data_time, self.temp_dir.name)
-        self.assertTrue(self.mock_readWaveformTrace.called)
+        self.assertTrue(self.mock_read_waveform_trace.called)
 
     def test_start_data_time_earlier_than_earliest_start_time(self):
-        self.mock_readWaveformTrace.return_value = {
+        self.mock_read_waveform_trace.return_value = {
             'startTmEpoch': 51251,
             'endTmEpoch': 2623623,
         }
@@ -352,7 +343,7 @@ class TestReadWaveformReftek(TestCase):
     def test_end_data_time_later_than_latest_start_time(self):
         # End time set to be the last second of 9999 so as to be later than the
         # end time of any test data.
-        self.mock_readWaveformTrace.return_value = {
+        self.mock_read_waveform_trace.return_value = {
             'startTmEpoch': 51251,
             'endTmEpoch': 2623623,
         }
@@ -364,7 +355,7 @@ class TestReadWaveformReftek(TestCase):
         self.assertEqual(self.data_time[1], end_time)
 
     def test_data_time_is_between_earliest_start_and_latest_end_time(self):
-        self.mock_readWaveformTrace.return_value = {
+        self.mock_read_waveform_trace.return_value = {
             'startTmEpoch': 51251,
             'endTmEpoch': 2623623,
         }
@@ -413,8 +404,8 @@ class TestReadASCII(TestCase):
         # after splitting the log string based on \n
         log_lines = [line.strip('\r') for line in log_lines]
         # The first four elements of log_lines will be there whether anything
-        # is read from the file, so we know that something is read from the
-        # file when log_lines have more than four elements
+        # is read from the file, so we know that something has been read from
+        # the file when log_lines have more than four elements.
         self.assertGreater(len(log_lines), 4)
         # Check that we are not reading in gibberish
         self.assertEqual(
@@ -563,4 +554,50 @@ class TestSaveData2File(TestCase):
         with self.assertRaises(ValueError):
             saveData2File(self.temp_dir.name, self.time_data, self.station_id,
                           self.channel_id, self.trace, self.trace_idx,
-                          self.trace_size)
\ No newline at end of file
+                          self.trace_size)
+
+
+class TestCheckChan(TestCase):
+    def setUp(self) -> None:
+        self.req_soh_chans = ['LCE', 'LCQ', 'VM1']
+        self.req_wf_chans = ['LHE', 'HHE']
+
+        check_soh_chan_patcher = patch(
+            'sohstationviewer.model.handling_data.checkSOHChan',
+            wraps=checkSOHChan
+        )
+        self.addCleanup(check_soh_chan_patcher.stop)
+        self.mock_check_soh_chan = check_soh_chan_patcher.start()
+
+        check_wf_chan_patcher = patch(
+            'sohstationviewer.model.handling_data.checkWFChan',
+            wraps=checkWFChan
+        )
+        self.addCleanup(check_wf_chan_patcher.stop)
+        self.mock_check_wf_chan = check_wf_chan_patcher.start()
+
+    def test_channel_is_waveform_and_is_requested(self):
+        waveform_channel = 'LHE'
+        ret = checkChan(waveform_channel, self.req_soh_chans,
+                        self.req_wf_chans)
+        self.assertEqual(ret, 'WF')
+        self.assertTrue(self.mock_check_wf_chan.called)
+
+    def test_channel_is_waveform_but_not_requested(self):
+        waveform_channel = 'HH1'
+        ret = checkChan(waveform_channel, self.req_soh_chans,
+                        self.req_wf_chans)
+        self.assertFalse(ret)
+        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)
+
+    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
-- 
GitLab