def test_function(self): # Setup master_key = MasterKey() settings = Settings() ts = datetime.datetime.now() o_getpass = getpass.getpass window_list = WindowList() contact_list = ContactList() group_list = GroupList() key_list = KeyList() getpass.getpass = lambda x: 'a' write_log_entry(F_S_HEADER + bytes(255), '*****@*****.**', settings, master_key) # Test self.assertEqual(master_key.master_key, bytes(32)) self.assertIsNone( change_master_key(ts, window_list, contact_list, group_list, key_list, settings, master_key)) self.assertNotEqual(master_key.master_key, bytes(32)) # Teardown getpass.getpass = o_getpass cleanup()
def setUp(self): """Pre-test actions.""" self.contact_list = ContactList(nicks=['Alice']) self.group_list = GroupList() self.settings = Settings() self.queues = gen_queue_dict() self.args = self.contact_list, self.group_list, self.settings, self.queues
def test_normal_msg_from_user(self): # Setup ts = datetime.datetime.now() apct_list = self.create_message_apct(ORIGIN_USER_HEADER, b'testmessage') contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.tx_harac = 1 keyset.tx_key = 32 * b'\x01' keyset.tx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertIsNone( process_message(ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key)) # Teardown cleanup()
def setUp(self): self.contact_list = ContactList(nicks=['Alice']) self.group_list = GroupList() self.settings = Settings() self.queues = gen_queue_dict() self.master_key = MasterKey() self.args = self.contact_list, self.group_list, self.settings, self.queues, self.settings
def test_file(self): # Setup ts = datetime.datetime.now() apct_list = self.create_file_apct() contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.rx_harac = 1 keyset.rx_key = 32 * b'\x01' keyset.rx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertIsNone( process_message(ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key)) # Teardown shutil.rmtree('received_files/')
def setUp(self): self.contact_list = ContactList() self.group_list = GroupList() self.settings = Settings(disable_gui_dialog=True) self.queues = gen_queue_dict() self.onion_service = OnionService() self.args = self.contact_list, self.group_list, self.settings, self.queues, self.onion_service
def test_contact_not_present_on_txm(self): # Setup o_input = builtins.input builtins.input = lambda x: 'Yes' user_input = UserInput('rm [email protected]') contact_list = ContactList(nicks=['Bob']) window = Window(window_contact=[contact_list.get_contact('Bob')], type='group') group_list = GroupList(groups=[]) settings = Settings() queues = {KEY_MANAGEMENT_QUEUE: Queue(), COMMAND_PACKET_QUEUE: Queue()} # Test self.assertIsNone( remove_contact(user_input, window, contact_list, group_list, settings, queues)) self.assertEqual(queues[COMMAND_PACKET_QUEUE].qsize(), 1) command_packet, settings_ = queues[COMMAND_PACKET_QUEUE].get() self.assertIsInstance(command_packet, bytes) self.assertIsInstance(settings_, Settings) # Teardown builtins.input = o_input queues[KEY_MANAGEMENT_QUEUE].close() queues[COMMAND_PACKET_QUEUE].close()
class TestGroupRemove(TFCTestCase): def setUp(self) -> None: """Pre-test actions.""" self.ts = datetime.datetime.now() self.window_list = WindowList() self.contact_list = ContactList( nicks=[f"contact_{n}" for n in range(21)]) self.group_list = GroupList(groups=['test_group']) self.group = self.group_list.get_group('test_group') self.group.members = self.contact_list.contacts[:19] self.settings = Settings() def test_unknown_group_id_raises_se(self) -> None: # Setup group_list = GroupList(groups=['test_group']) contact_list = ContactList(nicks=[str(n) for n in range(21)]) cmd_data = group_name_to_group_id('test_group2') + nick_to_pub_key( '20') # Test self.assert_se("Error: No group with ID '2e7mHQznTMsP6' found.", group_remove, cmd_data, self.ts, self.window_list, contact_list, group_list) def test_successful_member_removal(self) -> None: self.cmd_data = group_name_to_group_id('test_group') + b''.join( [nick_to_pub_key('contact_18'), nick_to_pub_key('contact_20')]) self.assertIsNone( group_remove(self.cmd_data, self.ts, self.window_list, self.contact_list, self.group_list))
def test_successful_removal_of_contact(self): # Setup o_input = builtins.input builtins.input = lambda x: 'Yes' user_input = UserInput('rm Alice') contact_list = ContactList(nicks=['Alice']) window = Window(window_contacts=[contact_list.get_contact('Alice')], type='contact') group_list = GroupList(groups=['testgroup']) settings = Settings() queues = {KEY_MANAGEMENT_QUEUE: Queue(), COMMAND_PACKET_QUEUE: Queue()} # Test for g in group_list: self.assertIsInstance(g, Group) self.assertTrue(g.has_member('*****@*****.**')) self.assertIsNone( remove_contact(user_input, window, contact_list, group_list, settings, queues)) self.assertEqual(queues[COMMAND_PACKET_QUEUE].qsize(), 1) km_data = queues[KEY_MANAGEMENT_QUEUE].get() self.assertEqual(km_data, ('REM', '*****@*****.**')) self.assertFalse(contact_list.has_contact('*****@*****.**')) for g in group_list: self.assertIsInstance(g, Group) self.assertFalse(g.has_member('*****@*****.**')) # Teardown builtins.input = o_input
def test_successful_group_creation(self) -> None: # Setup group_list = GroupList(groups=['test_group']) cmd_data = group_name_to_group_id( 'test_group') + b'test_group2' + US_BYTE + nick_to_pub_key('Bob') contact_list = ContactList(nicks=['Alice', 'Bob']) window_list = WindowList(nicks=['Alice', 'Bob'], contact_list=contact_list, group_lis=group_list, packet_list=None, settings=Settings) # Test self.assertIsNone( group_create(cmd_data, self.ts, window_list, contact_list, group_list, self.settings)) self.assertEqual(len(group_list.get_group('test_group')), 2)
def setUp(self) -> None: """Pre-test actions.""" self.unit_test_dir = cd_unit_test() self.master_key = MasterKey() self.settings = Settings() self.time = STATIC_TIMESTAMP self.contact_list = ContactList(self.master_key, self.settings) self.group_list = GroupList(groups=['test_group']) self.file_name = f'{DIR_USER_DATA}{self.settings.software_operation}_logs' self.tmp_file_name = self.file_name + "_temp" self.tfc_log_database = MessageLog(self.file_name, self.master_key.master_key) self.args = self.contact_list, self.group_list, self.settings, self.master_key self.msg = ( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum consectetur purus quis" " dapibus. Fusce venenatis lacus ut rhoncus faucibus. Cras sollicitudin commodo sapien, sed bibendu" "m velit maximus in. Aliquam ac metus risus. Sed cursus ornare luctus. Integer aliquet lectus id ma" "ssa blandit imperdiet. Ut sed massa eget quam facilisis rutrum. Mauris eget luctus nisl. Sed ut el" "it iaculis, faucibus lacus eget, sodales magna. Nunc sed commodo arcu. In hac habitasse platea dic" "tumst. Integer luctus aliquam justo, at vestibulum dolor iaculis ac. Etiam laoreet est eget odio r" "utrum, vel malesuada lorem rhoncus. Cras finibus in neque eu euismod. Nulla facilisi. Nunc nec ali" "quam quam, quis ullamcorper leo. Nunc egestas lectus eget est porttitor, in iaculis felis sceleris" "que. In sem elit, fringilla id viverra commodo, sagittis varius purus. Pellentesque rutrum loborti" "s neque a facilisis. Mauris id tortor placerat, aliquam dolor ac, venenatis arcu." )
class TestTabCompleteList(unittest.TestCase): def setUp(self): self.contact_list = ContactList(nicks=['Alice', 'Bob']) self.group_list = GroupList(groups=['test_group']) self.settings = Settings(key_list=['key1', 'key2']) self.gateway = Gateway() def test_get_tab_complete_list(self): tab_complete_list = [ a + ' ' for a in self.contact_list.get_list_of_addresses() ] tab_complete_list += [ i + ' ' for i in self.group_list.get_list_of_hr_group_ids() ] tab_complete_list += [s + ' ' for s in self.settings.key_list] tab_complete_list += [s + ' ' for s in self.gateway.settings.key_list] tc_list = get_tab_complete_list(self.contact_list, self.group_list, self.settings, self.gateway) self.assertTrue(set(tab_complete_list) < set(tc_list)) self.assertIsInstance( get_tab_completer(self.contact_list, self.group_list, self.settings, self.gateway), types.FunctionType) completer = get_tab_completer(self.contact_list, self.group_list, self.settings, self.gateway) options = completer('a', state=0) self.assertEqual(options, 'all') self.assertIsNone(completer('a', state=5))
def test_invalid_group_message_header(self): # Setup message = b'testgroup' ts = datetime.datetime.now() apct_list = self.create_message_apct(ORIGIN_CONTACT_HEADER, message, header=GROUP_MESSAGE_HEADER) contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.rx_harac = 1 keyset.rx_key = 32 * b'\x01' keyset.rx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertFR("Received an invalid group message.", process_message, ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key)
def test_invalid_window_raises_fr(self): # Setup message = b'testgroup' ts = datetime.datetime.now() timestamp = double_to_bytes(time.time() * 1000) header = GROUP_MESSAGE_HEADER + timestamp + b'test_group' + US_BYTE apct_list = self.create_message_apct(ORIGIN_CONTACT_HEADER, message, header=header) contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.rx_harac = 1 keyset.rx_key = 32 * b'\x01' keyset.rx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertFR("Received message to unknown group.", process_message, ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key) # Teardown cleanup()
def test_group_exit_msg(self): # Setup message = b'testgroup' ts = datetime.datetime.now() apct_list = self.create_message_apct( ORIGIN_CONTACT_HEADER, message, header=GROUP_MSG_EXIT_GROUP_HEADER) contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.rx_harac = 1 keyset.rx_key = 32 * b'\x01' keyset.rx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertIsNone( process_message(ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key)) # Teardown cleanup()
def test_group_invitation_msg_from_user(self): # Setup message = b'testgroup' + US_BYTE + b'*****@*****.**' + US_BYTE + b'*****@*****.**' ts = datetime.datetime.now() apct_list = self.create_message_apct( ORIGIN_USER_HEADER, message, header=GROUP_MSG_INVITATION_HEADER) contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.tx_harac = 1 keyset.tx_key = 32 * b'\x01' keyset.tx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertIsNone( process_message(ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key)) # Teardown cleanup()
def test_successful_group_add(self) -> None: # Setup contact_list = ContactList(nicks=[str(n) for n in range(21)]) group_lst = GroupList(groups=['test_group']) group = group_lst.get_group('test_group') group.members = contact_list.contacts[:19] cmd_data = group_name_to_group_id('test_group') + nick_to_pub_key('20') # Test self.assertIsNone(group_add(cmd_data, self.ts, self.window_list, contact_list, group_lst, self.settings)) group2 = group_lst.get_group('test_group') self.assertEqual(len(group2), 20) for c in group2: self.assertIsInstance(c, Contact)
def setUp(self): self.window = TxWindow() self.contact_list = ContactList() self.group_list = GroupList() self.settings = Settings() self.queues = gen_queue_dict() self.gateway = Gateway() self.args = self.window, self.contact_list, self.group_list, self.settings, self.queues, self.gateway
def test_unknown_group_id_raises_soft_error(self) -> None: # Setup group_list = GroupList(groups=['test_group']) cmd_data = group_name_to_group_id('test_group2') # Test self.assert_se("Error: No group with ID '2e7mHQznTMsP6' found.", group_delete, cmd_data, self.ts, self.window_list, group_list)
def setUp(self): self.ts = datetime.now() self.contact_list = ContactList(nicks=['Alice']) self.window_list = WindowList(contact_list=self.contact_list) self.group_list = GroupList() self.args = self.ts, self.window_list, self.contact_list self.window = self.window_list.get_window(nick_to_pub_key("Alice")) self.window.type = WIN_TYPE_CONTACT
def setUp(self): self.o_input = builtins.input self.c_queue = Queue() self.window = TxWindow(uid='*****@*****.**', name='Alice') self.contact_list = ContactList() self.group_list = GroupList() self.settings = Settings() self.master_key = MasterKey()
def setUp(self): self.ts = datetime.datetime.now() self.group_list = GroupList(groups=['test_group']) self.window_list = WindowList() self.window = RxWindow() self.window_list.windows = [self.window] self.contact_list = ContactList(nicks=['alice']) self.args = self.ts, self.window_list, self.contact_list, self.group_list
def test_no_accounts_removes_group(self): # Setup group_list = GroupList(groups=['testgroup']) # Test self.assertFR("Removed group 'testgroup'", group_rm_member, 'testgroup', [], group_list, self.contact_list, self.settings, self.queues, self.master_key)
def test_remove_members_from_unknown_group(self): # Setup group_list = GroupList(groups=['testgroup2']) # Test self.assertFR("Group 'testgroup' does not exist.", group_rm_member, 'testgroup', ['*****@*****.**'], group_list, None, None, None)
def setUp(self) -> None: """Pre-test actions.""" self.contact_list = ContactList(nicks=[LOCAL_ID]) self.group_list = GroupList() self.settings = Settings(disable_gui_dialog=True) self.queues = gen_queue_dict() self.onion_service = OnionService() self.args = self.contact_list, self.group_list, self.settings, self.queues, self.onion_service
def test_enable_logging_group(self): # Setup cmd_data = b'e' + US_BYTE + b'testgroup' ts = datetime.datetime.now() contact_list = ContactList(nicks=['Bob']) window_list = WindowList(windows=[ RxMWindow(type='group', name='testgroup', uid='testgroup') ]) group_list = GroupList(groups=['testgroup']) setting_type = 'L' # Test group_list.get_group('testgroup').log_messages = False self.assertIsNone( contact_setting(cmd_data, ts, window_list, contact_list, group_list, setting_type)) self.assertTrue(group_list.get_group('testgroup').log_messages)
def setUp(self) -> None: """Pre-test actions.""" self.unit_test_dir = cd_unit_test() self.win_name = nick_to_pub_key("Alice") self.contact_list = ContactList() self.group_list = GroupList() self.settings = Settings() self.master_key = MasterKey()
def setUp(self): self.settings = Settings(disable_gui_dialog=True) self.gateway = Gateway() self.contact_list = ContactList() self.group_list = GroupList() self.master_key = MasterKey() self.onion_service = OnionService() self.queues = gen_queue_dict()
def test_missing_group_raises_fr(self): # Setup cmd_data = b'testgroup_2' ts = datetime.datetime.now() window_list = WindowList() group_list = GroupList(groups=['testgroup']) # Test self.assertFR("RxM has no group testgroup_2 to remove.", remove_group, cmd_data, ts, window_list, group_list)
def test_no_contact_raises_fr(self): # Setup contact_list = ContactList(nicks=['Alice']) group_list = GroupList(groups=[]) key_list = KeyList(nicks=['Alice']) # Test self.assert_fr(f"Receiver has no account '{nick_to_short_address('Bob')}' to remove.", contact_rem, *self.args, contact_list, group_list, key_list, self.settings, self.master_key)