from unittest import TestCase from sohstationviewer.view.util.functions import ( get_soh_messages_for_view, log_str) from sohstationviewer.view.util.enums import LogType class TestGetSOHMessageForView(TestCase): def test_no_or_empty_textlog(self): soh_msg_channels = {"ACE": ["test1\ntest2", "test3"], "LOG": ["test4"]} soh_msg_for_view = {'ACE': ['test1', 'test2', 'test3'], 'LOG': ['test4']} with self.subTest('test_no_TEXT_str_dataset_key'): soh_messages = {"key1": soh_msg_channels} ret = get_soh_messages_for_view("key1", soh_messages) self.assertNotIn('TEXT', list(ret.keys())) self.assertEqual(ret, soh_msg_for_view) with self.subTest('test_empty_TEXT_tupple_dataset_key'): soh_messages = {"TEXT": [], ("key1", "key2"): soh_msg_channels} ret = get_soh_messages_for_view(("key1", "key2"), soh_messages) self.assertNotIn('TEXT', list(ret.keys())) self.assertEqual(ret, soh_msg_for_view) # no key "TEXT", dataset has no channels with self.subTest('test_no_TEXT_no_SOH_channels_for_dataset'): soh_messages = {"key1": {}} ret = get_soh_messages_for_view("key1", soh_messages) self.assertEqual(ret, {}) def test_some_empty_soh_message(self): soh_messages = {"TEXT": ['text1', 'text2\ntext3'], "key1": {"ACE": ["test1\ntest2", "test3"], "LOG": []}} # channel LOG is empty ret = get_soh_messages_for_view("key1", soh_messages) self.assertEqual(ret, {'TEXT': ['text1', 'text2', 'text3'], 'ACE': ['test1', 'test2', 'test3'], 'LOG': []}) class TestLogStr(TestCase): def test_log_str(self): log = ('info line 1', LogType.INFO) ret = log_str(log) self.assertEqual(ret, 'INFO: info line 1')