diff --git a/sohstationviewer/view/util/functions.py b/sohstationviewer/view/util/functions.py index 60e2883b3d3f3da756a80d614ad4b943d0563c9a..68bd436b384ae812e42fc6521d65cc90a8d795a6 100644 --- a/sohstationviewer/view/util/functions.py +++ b/sohstationviewer/view/util/functions.py @@ -359,9 +359,10 @@ def replace_actual_quest_chans( for qc in quest_chans: actual_quest_chans = [c for c in list(actual_chans) if qc[:-1] == c[:-1]] - quest_idx = chan_order.index(qc) - chan_order.remove(qc) - chan_order[quest_idx:quest_idx] = sorted(actual_quest_chans) + if actual_quest_chans: + quest_idx = chan_order.index(qc) + chan_order.remove(qc) + chan_order[quest_idx:quest_idx] = sorted(actual_quest_chans) return chan_order diff --git a/tests/test_view/test_util_functions.py b/tests/test_view/test_util_functions.py index eedfa5481bf020c4d29c803c9eed95c0fdf29754..60fb1c205b464b201cf8378619166cc40f2713b0 100644 --- a/tests/test_view/test_util_functions.py +++ b/tests/test_view/test_util_functions.py @@ -520,10 +520,18 @@ class RemoveNotFoundChansClass(TestCase): class ReplaceActualQuestChans(TestCase): - def test_replace_actual_quest_chans(self): + def test_quest_chans_in_actual_chans(self): chan_order = ['A', 'B', 'C?', 'D'] actual_chans = ['C1', 'C3', 'C2', 'D', 'E', 'F'] expected_new_chan_order = ['A', 'B', 'C1', 'C2', 'C3', 'D'] ret = replace_actual_quest_chans(chan_order, actual_chans) self.assertListEqual(ret, expected_new_chan_order) + + def test_quest_chans_not_in_actual_chans(self): + chan_order = ['A?', 'B', 'C', 'D'] + actual_chans = ['C', 'D', 'E', 'F'] + expected_new_chan_order = ['A?', 'B', 'C', 'D'] + + ret = replace_actual_quest_chans(chan_order, actual_chans) + self.assertListEqual(ret, expected_new_chan_order)