diff --git a/tests/view/util/test_functions.py b/tests/view/util/test_functions.py index 1e2855cdbc4b26bf8b284d17789066772cc7d619..12e6b95c331c0e2a08e3ec19f060cfb1cad6200c 100644 --- a/tests/view/util/test_functions.py +++ b/tests/view/util/test_functions.py @@ -383,38 +383,96 @@ class TestCheckChanWildcardsFormat(BaseTestCase): class TestCheckMassPos(BaseTestCase): @classmethod def setUpClass(cls) -> None: - cls.mp_data = {'MP1': {'chan_id': 'MP1', 'samplerate': 1}, - 'MP3': {'chan_id': 'MP3', 'samplerate': 1}, - 'MP4': {'chan_id': 'MP4', 'samplerate': 1}} cls.sel_key = '1378' - def test_include_mp123(self): - with self.assertRaises(Exception) as context: - check_masspos(self.mp_data, self.sel_key, - include_mp123=True, include_mp456=False) - self.assertEqual( - str(context.exception), - f"Data set {self.sel_key} doesn't include mass position 2") + def test_include_mp123_not_include_mp456(self): + with self.subTest("Consist of MP1,MP3"): + mp_data = {'MP1': {'chan_id': 'MP1', 'samplerate': 1}, + 'MP3': {'chan_id': 'MP3', 'samplerate': 1}, + 'MP4': {'chan_id': 'MP4', 'samplerate': 1}} + with self.assertRaises(Exception) as context: + check_masspos(mp_data, self.sel_key, + include_mp123=True, include_mp456=False) + self.assertEqual( + str(context.exception), + f"Data set {self.sel_key} doesn't include mass position 2") + with self.subTest("Consist of MP1,MP3,MPE"): + mp_data = {'MP1': {'chan_id': 'MP1', 'samplerate': 1}, + 'MP3': {'chan_id': 'MP3', 'samplerate': 1}, + 'MPE': {'chan_id': 'MPE', 'samplerate': 1}, + 'MP4': {'chan_id': 'MP4', 'samplerate': 1}} + with self.assertRaises(Exception) as context: + check_masspos(mp_data, self.sel_key, + include_mp123=True, include_mp456=False) + self.assertEqual( + str(context.exception), + f"Data set {self.sel_key} doesn't include mass position " + f"2,Z,N") + with self.subTest("Consist of MPB"): + mp_data = {'MPB': {'chan_id': 'MPB', 'samplerate': 1}, + 'MP4': {'chan_id': 'MP4', 'samplerate': 1}} + with self.assertRaises(Exception) as context: + check_masspos(mp_data, self.sel_key, + include_mp123=True, include_mp456=False) + self.assertEqual( + str(context.exception), + f"Data set {self.sel_key} doesn't include mass position " + f"A,C") + with self.subTest("No MP 123/ZNE/ABC"): + mp_data = {'MP4': {'chan_id': 'MP4', 'samplerate': 1}} + with self.assertRaises(Exception) as context: + check_masspos(mp_data, self.sel_key, + include_mp123=True, include_mp456=False) + self.assertEqual( + str(context.exception), + f"Data set {self.sel_key} doesn't include mass position " + f"1,2,3") - def test_include_mp456(self): - with self.assertRaises(Exception) as context: - check_masspos(self.mp_data, self.sel_key, - include_mp123=False, include_mp456=True) - self.assertEqual( - str(context.exception), - f"Data set {self.sel_key} doesn't include mass position 5,6") + def test_include_mp456_not_include456(self): + with self.subTest("Consist of MP4"): + mp_data = {'MP1': {'chan_id': 'MP1', 'samplerate': 1}, + 'MP4': {'chan_id': 'MP4', 'samplerate': 1}} + with self.assertRaises(Exception) as context: + check_masspos(mp_data, self.sel_key, + include_mp123=False, include_mp456=True) + self.assertEqual( + str(context.exception), + f"Data set {self.sel_key} doesn't include mass position 5,6") + with self.subTest("Consist of MPW"): + mp_data = {'MP1': {'chan_id': 'MP1', 'samplerate': 1}, + 'MPW': {'chan_id': 'MPW', 'samplerate': 1}} + with self.assertRaises(Exception) as context: + check_masspos(mp_data, self.sel_key, + include_mp123=False, include_mp456=True) + self.assertEqual( + str(context.exception), + f"Data set {self.sel_key} doesn't include mass position U,V") + with self.subTest("No MP 456/UVW"): + mp_data = {'MP1': {'chan_id': 'MP1', 'samplerate': 1}} + with self.assertRaises(Exception) as context: + check_masspos(mp_data, self.sel_key, + include_mp123=False, include_mp456=True) + self.assertEqual( + str(context.exception), + f"Data set {self.sel_key} doesn't include mass position " + f"4,5,6") def test_include_mp123456(self): + mp_data = {'MP1': {'chan_id': 'MP1', 'samplerate': 1}, + 'MP3': {'chan_id': 'MP3', 'samplerate': 1}, + 'MP4': {'chan_id': 'MP4', 'samplerate': 1}} with self.assertRaises(Exception) as context: - check_masspos(self.mp_data, self.sel_key, + check_masspos(mp_data, self.sel_key, include_mp123=True, include_mp456=True) self.assertEqual( str(context.exception), f"Data set {self.sel_key} doesn't include mass position 2,5,6") def test_not_include_mp(self): + mp_data = {'MP1': {'chan_id': 'MP1', 'samplerate': 1}, + 'MP4': {'chan_id': 'MP4', 'samplerate': 1}} try: - check_masspos(self.mp_data, self.sel_key, + check_masspos(mp_data, self.sel_key, include_mp123=False, include_mp456=False) except Exception: self.fail("check_masspos() raise Exception unexpectedly")