Esempio n. 1
0
 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')
Esempio n. 2
0
 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
Esempio n. 3
0
    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)
Esempio n. 4
0
    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
Esempio n. 5
0
    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')
Esempio n. 6
0
    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)
Esempio n. 7
0
 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)])
Esempio n. 8
0
    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)
Esempio n. 9
0
    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()