From 099c51f5a203c6b4a39b08812683ffce8bebf739 Mon Sep 17 00:00:00 2001
From: ldam <ldam@passcal.nmt.edu>
Date: Tue, 29 Aug 2023 16:25:55 -0600
Subject: [PATCH] add unittest for reading 2 folders

---
 tests/model/reftek_data/test_reftek.py | 58 ++++++++++++++++++++++----
 1 file changed, 50 insertions(+), 8 deletions(-)

diff --git a/tests/model/reftek_data/test_reftek.py b/tests/model/reftek_data/test_reftek.py
index 8bb2a7174..af03b2aa0 100644
--- a/tests/model/reftek_data/test_reftek.py
+++ b/tests/model/reftek_data/test_reftek.py
@@ -17,7 +17,7 @@ class TestReftek(TestCase):
         # raise exception when path not exist
         args = {
             'data_type': 'RT130',
-            'folder': '_',
+            'list_of_dir': ['_'],
             'rt130_waveform_data_req': False,
             'on_unittest': True
         }
@@ -31,7 +31,7 @@ class TestReftek(TestCase):
     def test_read_soh(self):
         args = {
             'data_type': 'RT130',
-            'folder': reftek_data,
+            'list_of_dir': [reftek_data],
             'req_soh_chans': [],
             'rt130_waveform_data_req': False,
             'on_unittest': True
@@ -56,13 +56,13 @@ class TestReftek(TestCase):
             '\n150:00:00:00 REF TEK 130'
             '\r\n150:00:00:00 CPU SOFTWARE')
         self.assertEqual(list(obj.soh_data.keys()), [('92EB', '25')])
-        self.assertEqual(list(obj.soh_data[('92EB', '25')].keys()),
-                         expected_soh)
+        self.assertEqual(sorted(list(obj.soh_data[('92EB', '25')].keys())),
+                         sorted(expected_soh))
 
     def test_read_waveform(self):
         args = {
             'data_type': 'RT130',
-            'folder': reftek_data,
+            'list_of_dir': [reftek_data],
             'req_soh_chans': [],
             'req_wf_chans': [1],
             'rt130_waveform_data_req': True,
@@ -85,7 +85,7 @@ class TestReftek(TestCase):
     def test_read_mass_pos(self):
         args = {
             'data_type': 'RT130',
-            'folder': reftek_data,
+            'list_of_dir': [reftek_data],
             'req_soh_chans': ['_'],
             'include_mp123zne': True,
             'rt130_waveform_data_req': False,
@@ -107,7 +107,7 @@ class TestReftek(TestCase):
         with self.subTest("no gap_minimum set"):
             args = {
                 'data_type': 'RT130',
-                'folder': reftek_gap_data,
+                'list_of_dir': [reftek_gap_data],
                 'req_soh_chans': [],
                 'req_wf_chans': ['*'],
                 'rt130_waveform_data_req': True,
@@ -129,7 +129,7 @@ class TestReftek(TestCase):
         with self.subTest("has gap_minimum set"):
             args = {
                 'data_type': 'RT130',
-                'folder': reftek_gap_data,
+                'list_of_dir': [reftek_gap_data],
                 'req_soh_chans': [],
                 'req_wf_chans': ['*'],
                 'rt130_waveform_data_req': True,
@@ -148,3 +148,45 @@ class TestReftek(TestCase):
                              ['TEXT', ('98AD', '0')])
             self.assertEqual(obj.gaps[('98AD', '0')],
                              [[1648493999.64, 1648508400.64]])
+
+    def test_select_2_folders(self):
+        args = {
+            'data_type': 'RT130',
+            'list_of_dir': [reftek_data, reftek_gap_data],
+            'req_soh_chans': [],
+            'req_wf_chans': ['*'],
+            'rt130_waveform_data_req': True,
+            'gap_minimum': 60,
+            'on_unittest': True
+        }
+        expected_soh = [
+            'SOH/Data Def', 'Battery Volt', 'DAS Temp', 'Backup Volt',
+            'Disk Usage1', 'Disk Usage2', 'Dump Called/Comp', 'GPS On/Off/Err',
+            'GPS Lk/Unlk', 'Clk Phase Err',  'Event DS1', 'Event DS9']
+        expected_waveform = ['DS1-1', 'DS1-2', 'DS1-3']
+        obj = RT130(**args)
+        self.assertEqual(obj.found_data_streams, [9, 1, 1, 2, 2])
+        self.assertEqual(obj.keys, [('92EB', '25'), ('98AD', '0')])
+        self.assertEqual(obj.selected_key, ('92EB', '25'))
+        self.assertEqual(
+            list(obj.stream_header_by_key_chan[('92EB', '25')].keys()),
+            expected_waveform)
+        self.assertEqual(list(obj.log_data.keys()),
+                         ['TEXT', ('92EB', '25'), ('98AD', '0')])
+        self.assertEqual(len(obj.log_data['TEXT']), 0)
+        self.assertEqual(list(obj.log_data[('92EB', '25')].keys()), ['SOH'])
+        self.assertEqual(len(obj.log_data[('92EB', '25')]['SOH']), 1)
+        self.assertEqual(
+            obj.log_data[('92EB', '25')]['SOH'][0][:100],
+            '\nState of Health  17:150:00:00:00:000   ST: 92EB'
+            '\n150:00:00:00 REF TEK 130'
+            '\r\n150:00:00:00 CPU SOFTWARE')
+        self.assertEqual(list(obj.soh_data.keys()),
+                         [('92EB', '25'), ('98AD', '0')])
+        self.assertEqual(sorted(list(obj.soh_data[('92EB', '25')].keys())),
+                         sorted(expected_soh))
+        self.assertEqual(list(obj.gaps.keys()),
+                         [('92EB', '25'), ('98AD', '0')])
+        self.assertEqual(obj.gaps[('92EB', '25')], [])
+        self.assertEqual(obj.gaps[('98AD', '0')],
+                         [[1648493999.64, 1648508400.64]])
-- 
GitLab