diff --git a/tests/test_model/test_handling_data.py b/tests/test_model/test_handling_data.py index 14ecbfaafb2085104bcddb9e66f11632f618fb42..d92a87533465ee5c992dd9afe4f2c1a3b05d5538 100644 --- a/tests/test_model/test_handling_data.py +++ b/tests/test_model/test_handling_data.py @@ -1,4 +1,5 @@ from pathlib import Path +import tempfile from math import isclose from unittest import TestCase @@ -11,10 +12,12 @@ from sohstationviewer.model.handling_data import ( readSOHMSeed, readSOHTrace, readMPTrace, + readWaveformTrace, ) from sohstationviewer.model.reftek.from_rt2ms.core import Reftek130 TEST_DATA_DIR = Path(__file__).parent.parent.joinpath('test_data') +# tempfile.tempdir = './tempdir' class TestHandlingData(TestCase): @@ -49,7 +52,6 @@ class TestHandlingData(TestCase): ] self.assertTrue( all(key in processed_trace for key in expected_key_list), - msg='Processed trace is missing some fields.' ) def test_read_soh_trace_times_calculated_correctly(self): @@ -76,10 +78,32 @@ class TestHandlingData(TestCase): np.array_equal(processed_trace['data'], expected) ) - # @skip - # def test_read_waveform_trace(self): - # self.fail() - # + @patch('sohstationviewer.model.handling_data.saveData2File') + def test_read_waveform_trace(self, mock_save_data_2_file): + station_id = self.rt130_trace.stats['station'] + channel_id = self.rt130_trace.stats['channel'] + # The function itself only cares about the length of this list so we + # stub it out. + traces_info = [dict() for _ in range(4)] + tmp_dir = tempfile.TemporaryDirectory() + processed_trace = readWaveformTrace( + self.rt130_trace, station_id, channel_id, traces_info, tmp_dir.name + ) + + expected_key_list = [ + 'samplerate', + 'startTmEpoch', + 'endTmEpoch', + 'size', + 'times_f', + 'data_f', + ] + self.assertTrue( + all(key in processed_trace for key in expected_key_list), + ) + + self.assertTrue(mock_save_data_2_file.called) + # @skip # def test_read_waveform_mseed(self): # self.fail()