def setUp(self): self.settings = Settings() self.window = TxWindow(name='Alice', type=WIN_TYPE_CONTACT, type_print='contact', window_contacts=[create_contact('Alice')]) self.window.group = create_group('test_group')
def setUp(self): self.unittest_dir = cd_unittest() self.file_name = f"{DIR_USER_DATA}{TX}_settings" self.master_key = MasterKey() self.settings = Settings(self.master_key, operation=TX, local_test=False) self.contact_list = ContactList(nicks=[f'contact_{n}' for n in range(18)]) self.group_list = GroupList(groups=[f'group_{n}' for n in range(18)]) self.group_list.groups[0] = create_group('group_0', [f'contact_{n}' for n in range(18)]) self.args = self.contact_list, self.group_list
def test_successful_group_change(self, _: Any) -> None: # Setup group = create_group('test_group') self.window.type = WIN_TYPE_GROUP self.window.uid = group.group_id self.window.group = group # Test self.assert_se("Renamed group 'test_group' to 'window'.", group_rename, "window", *self.args) self.assertEqual(self.queues[COMMAND_PACKET_QUEUE].qsize(), 1)
def test_class(self): # Setup masterkey = MasterKey() o_input = builtins.input builtins.input = lambda x: 'yes' settings = Settings(masterkey, 'ut', False, False) contact_list = ContactList(nicks=['contact_{}'.format(n) for n in range(18)]) group_list = GroupList(groups =['group_{}'.format(n) for n in range(18)]) group_list.groups[0] = create_group('group_0', ['contact_{}'.format(n) for n in range(18)]) # Test store/load self.assertFalse(settings.disable_gui_dialog) settings.disable_gui_dialog = True settings.store_settings() self.assertTrue(os.path.isfile(f"{DIR_USER_DATA}/ut_settings")) self.assertEqual(os.path.getsize(f"{DIR_USER_DATA}/ut_settings"), 24 + 1024 + 9*8 + 12*1 + 16) settings2 = Settings(masterkey, 'ut', False, False) self.assertTrue(settings2.disable_gui_dialog) settings2.format_of_logfiles = b'invalid' with self.assertRaises(SystemExit): settings2.store_settings() with self.assertRaises(SystemExit): settings2.change_setting('format_of_logfiles', '%Y-%m-%d %H:%M:%S', contact_list, group_list) settings2.format_of_logfiles = '%Y-%m-%d %H:%M:%S' # Test change_setting self.assertFR('Invalid value Falsee.', settings2.change_setting, 'disable_gui_dialog', 'Falsee', contact_list, group_list) self.assertFR('Invalid value 1.1.', settings2.change_setting, 'm_members_in_group', '1.1', contact_list, group_list) self.assertFR('Invalid value 7378697629483820650.', settings2.change_setting, 'm_members_in_group', '7378697629483820650', contact_list, group_list) self.assertFR('Invalid value True.', settings2.change_setting, 'trickle_stat_delay', 'True', contact_list, group_list) self.assertFR("Setting must be shorter than 256 chars.", settings2.change_setting, 'format_of_logfiles', 256*'a', contact_list, group_list) self.assertIsNone(settings2.change_setting('format_of_logfiles', '%Y-%m-%d %H:%M:%S', contact_list, group_list)) self.assertIsNone(settings2.change_setting('e_correction_ratio', '10', contact_list, group_list)) self.assertIsNone(settings2.change_setting('rxm_serial_adapter', 'True', contact_list, group_list)) self.assertIsNone(settings2.change_setting('trickle_connection', 'True', contact_list, group_list)) self.assertFR("Database padding settings must be divisible by 10.", settings2.validate_key_value_pair, 'm_members_in_group', '18', contact_list, group_list) self.assertFR("Database padding settings must be divisible by 10.", settings2.validate_key_value_pair, 'm_number_of_groups', '18', contact_list, group_list) self.assertFR("Database padding settings must be divisible by 10.", settings2.validate_key_value_pair, 'm_number_of_accnts', '18', contact_list, group_list) self.assertFR("Can't set max number of members lower than 20.", settings2.validate_key_value_pair, 'm_members_in_group', '10', contact_list, group_list) self.assertFR("Can't set max number of groups lower than 20.", settings2.validate_key_value_pair, 'm_number_of_groups', '10', contact_list, group_list) self.assertFR("Can't set max number of contacts lower than 20.", settings2.validate_key_value_pair, 'm_number_of_accnts', '10', contact_list, group_list) self.assertFR("Specified baud rate is not supported.", settings2.validate_key_value_pair, 'serial_iface_speed', '10', contact_list, group_list) self.assertFR("Invalid value for error correction ratio.", settings2.validate_key_value_pair, 'e_correction_ratio', '0', contact_list, group_list) self.assertFR("Invalid value for error correction ratio.", settings2.validate_key_value_pair, 'e_correction_ratio', 'a', contact_list, group_list) self.assertFR("Invalid value for error correction ratio.", settings2.validate_key_value_pair, 'e_correction_ratio', '-1', contact_list, group_list) self.assertIsNone(settings2.print_settings()) builtins.input = o_input
def test_successful_group_nick_change(self, _: Any) -> None: # Setup group = create_group('test_group') user_input = UserInput("nick group2") window = TxWindow(name ='test_group', type =WIN_TYPE_GROUP, group=group, uid =group.group_id) # Test self.assert_se("Renamed group 'test_group' to 'group2'.", change_nick, user_input, window, *self.args) self.assertEqual(window.group.name, 'group2')
def test_group_message_header(self): # Setup user_input = UserInput(plaintext='Test message', type=MESSAGE) window = TxWindow(name='test_group', type=WIN_TYPE_GROUP, group=create_group('test_group'), log_messages=True) window.window_contacts = [create_contact('Alice')] # Test self.assertIsNone(queue_message(user_input, window, *self.args)) self.assertEqual(self.queues[MESSAGE_PACKET_QUEUE].qsize(), 1)
def setUp(self): self.o_input = builtins.input builtins.input = lambda _: 'yes' self.masterkey = MasterKey() self.settings = Settings(self.masterkey, operation='ut', local_test=False, dd_sockets=False) self.contact_list = ContactList( nicks=['contact_{}'.format(n) for n in range(18)]) self.group_list = GroupList( groups=['group_{}'.format(n) for n in range(18)]) self.group_list.groups[0] = create_group( 'group_0', ['contact_{}'.format(n) for n in range(18)])
def test_group_message_header(self): # Setup user_input = UserInput(plaintext='Test message', type=MESSAGE) window = TxWindow(name='testgroup', type=WIN_TYPE_GROUP, group=create_group(), log_messages=True) window.window_contacts = [create_contact()] # Test self.assertIsNone( queue_message(user_input, window, self.settings, self.m_queue)) time.sleep(0.1) self.assertEqual(self.m_queue.qsize(), 1)
def test_group_trickle(self): # Setup settings = Settings(session_trickle=True) m_queue = Queue() contact = create_contact('Alice') group = create_group('test_group', ['Alice']) window = Window(name='test_group', type='group', group=group, window_contacts=[contact]) # Short messages user_input = UserInput( plaintext=binascii.hexlify(os.urandom(125)).decode()) self.assertIsNone( queue_message(user_input, window, settings, m_queue, header=PRIVATE_MESSAGE_HEADER)) c_pt, log_dict = m_queue.get() self.assertEqual(len(c_pt), 256) self.assertIsInstance(log_dict, dict) # Long messages user_input = UserInput( plaintext=binascii.hexlify(os.urandom(250)).decode()) self.assertIsNone(queue_message(user_input, window, settings, m_queue)) self.assertEqual(m_queue.qsize(), 2) while not m_queue.empty(): c_pt, log_dict = m_queue.get() self.assertEqual(len(c_pt), 256) self.assertIsInstance(log_dict, dict) # Teardown time.sleep(0.2) m_queue.close()