コード例 #1
0
    def test_creates_key_file_from_default_key(self):
        sys.modules['weechat'].set_server_current_nick('server', 'noob')

        weechat_otr.message_in_cb(
            None, None, 'server', ':nick!user@host PRIVMSG noob :?OTRv2?')

        sys.modules['weechat'].config_options[
            'otr.general.defaultkey'] = 'noob@server'

        sys.modules['weechat'].set_server_current_nick('server', 'noob2')

        weechat_otr.message_in_cb(
            None, None, 'server', ':nick!user@host PRIVMSG noob2 :?OTRv2?')

        noob_key_path = os.path.join(
            sys.modules['weechat'].weechat_dir,
            'otr',
            '[email protected]')

        noob2_key_path = os.path.join(
            sys.modules['weechat'].weechat_dir,
            'otr',
            '[email protected]')

        with open(noob_key_path, 'rb') as noob_key:
            with open(noob2_key_path, 'rb') as noob2_key:
                self.assertEqual(noob_key.read(), noob2_key.read())
コード例 #2
0
    def test_creates_key_file_non_ascii(self):
        sys.modules["weechat"].set_server_current_nick("server", "gefährte")

        weechat_otr.message_in_cb(None, None, "server", ":nick!user@host PRIVMSG gefährte :?OTRv2?")

        key_path = os.path.join(sys.modules["weechat"].weechat_dir, "otr", "gefä[email protected]")

        self.assertGreater(os.path.getsize(key_path), 0)
コード例 #3
0
 def send_all(self, from_nick, to_nick, messages):
     # pylint: disable=no-self-use
     while messages:
         weechat_otr.message_in_cb(
             None, None, 'server',
             ':{from_nick}!user@host PRIVMSG {to_nick} :{message}'.format(
                 from_nick=from_nick,
                 to_nick=to_nick,
                 message=messages.pop().decode('utf-8', 'replace')))
コード例 #4
0
ファイル: session_test_case.py プロジェクト: mmb/weechat-otr
 def send_all(self, from_nick, to_nick, messages):
     # pylint: disable=no-self-use
     while messages:
         weechat_otr.message_in_cb(
             None, None, 'server',
             ':{from_nick}!user@host PRIVMSG {to_nick} :{message}'.format(
                 from_nick=from_nick,
                 to_nick=to_nick,
                 message=messages.pop().decode('utf-8', 'replace')))
コード例 #5
0
    def test_reads_key_file(self):
        sys.modules["weechat"].set_server_current_nick("server", "noob")

        weechat_otr.message_in_cb(None, None, "server", ":nick!user@host PRIVMSG noob :?OTRv2?")

        account = weechat_otr.ACCOUNTS["noob@server"]
        priv_key = account.getPrivkey()
        account.privkey = None

        self.assertEqual(priv_key, account.getPrivkey())
コード例 #6
0
    def test_creates_key_file_non_ascii(self):
        sys.modules['weechat'].set_server_current_nick('server', 'gefährte')

        weechat_otr.message_in_cb(None, None, 'server',
                                  ':nick!user@host PRIVMSG gefährte :?OTRv2?')

        key_path = os.path.join(sys.modules['weechat'].weechat_dir, 'otr',
                                'gefä[email protected]')

        self.assertGreater(os.path.getsize(key_path), 0)
コード例 #7
0
    def test_reads_key_file(self):
        sys.modules['weechat'].set_server_current_nick('server', 'noob')

        weechat_otr.message_in_cb(
            None, None, 'server', ':nick!user@host PRIVMSG noob :?OTRv2?')

        account = weechat_otr.ACCOUNTS['noob@server']
        priv_key = account.getPrivkey()
        account.privkey = None

        self.assertEqual(priv_key, account.getPrivkey())
コード例 #8
0
    def test_reads_key_file(self):
        sys.modules['weechat'].set_server_current_nick('server', 'noob')

        weechat_otr.message_in_cb(None, None, 'server',
                                  ':nick!user@host PRIVMSG noob :?OTRv2?')

        account = weechat_otr.ACCOUNTS['noob@server']
        priv_key = account.getPrivkey()
        account.privkey = None

        self.assertEqual(priv_key, account.getPrivkey())
コード例 #9
0
    def test_creates_key_file_non_ascii(self):
        sys.modules['weechat'].set_server_current_nick('server', 'gefährte')

        weechat_otr.message_in_cb(
            None, None, 'server', ':nick!user@host PRIVMSG gefährte :?OTRv2?')

        key_path = os.path.join(
            sys.modules['weechat'].weechat_dir,
            'otr',
            'gefä[email protected]')

        self.assertGreater(os.path.getsize(key_path), 0)
コード例 #10
0
ファイル: test_log_level.py プロジェクト: fauno/weechat-otr
    def test_log_level_return_to_previous(self):
        sys.modules['weechat'].config_options[
            'logger.level.irc.server_nick_buffer_name'] = 2

        sys.modules['weechat'].set_server_current_nick('server', 'nick')

        account1 = weechat_otr_test.recording_account.RecordingAccount(
            'nick@server')
        weechat_otr.ACCOUNTS['nick@server'] = account1

        account2 = weechat_otr_test.recording_account.RecordingAccount(
            'nick2@server')
        weechat_otr.ACCOUNTS['nick2@server'] = account2

        context1 = account2.getContext('nick@server')
        context2 = account1.getContext('nick2@server')

        sys.modules['weechat'].infolists = {
            ('logger_buffer', '', '') : [
                {
                    'pointer' : {'buffer' : context1.buffer()},
                    'integer' : {
                        'log_enabled' : 1,
                        'log_level' : 2,
                    },
                }
            ],
        }

        weechat_otr.message_in_cb(None, None, 'server',
            ':nick2!user@host PRIVMSG nick :?OTRv2?')

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')
        self.send_all('nick', 'nick2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick')
        self.send_all('nick2', 'nick', context1.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')
        self.send_all('nick', 'nick2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick')
        self.send_all('nick2', 'nick', context1.injected)

        context1.disconnect()

        self.assertIn(
            ('server_nick_buffer', '/mute logger set 2'),
            sys.modules['weechat'].commands)
コード例 #11
0
    def test_log_level_return_to_previous(self):
        sys.modules['weechat'].config_options[
            'logger.level.irc.server_nick_buffer_name'] = 2

        sys.modules['weechat'].set_server_current_nick('server', 'nick')

        account1 = weechat_otr_test.recording_account.RecordingAccount(
            'nick@server')
        weechat_otr.ACCOUNTS['nick@server'] = account1

        account2 = weechat_otr_test.recording_account.RecordingAccount(
            'nick2@server')
        weechat_otr.ACCOUNTS['nick2@server'] = account2

        context1 = account2.getContext('nick@server')
        context2 = account1.getContext('nick2@server')

        sys.modules['weechat'].infolists = {
            ('logger_buffer', '', ''): [{
                'pointer': {
                    'buffer': context1.buffer()
                },
                'integer': {
                    'log_enabled': 1,
                    'log_level': 2,
                },
            }],
        }

        weechat_otr.message_in_cb(None, None, 'server',
                                  ':nick2!user@host PRIVMSG nick :?OTRv2?')

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')
        self.send_all('nick', 'nick2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick')
        self.send_all('nick2', 'nick', context1.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')
        self.send_all('nick', 'nick2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick')
        self.send_all('nick2', 'nick', context1.injected)

        context1.disconnect()

        self.assertIn(('server_nick_buffer', '/mute logger set 2'),
                      sys.modules['weechat'].commands)
コード例 #12
0
    def test_creates_key_file_from_default_key(self):
        sys.modules["weechat"].set_server_current_nick("server", "noob")

        weechat_otr.message_in_cb(None, None, "server", ":nick!user@host PRIVMSG noob :?OTRv2?")

        sys.modules["weechat"].config_options["otr.general.defaultkey"] = "noob@server"

        sys.modules["weechat"].set_server_current_nick("server", "noob2")

        weechat_otr.message_in_cb(None, None, "server", ":nick!user@host PRIVMSG noob2 :?OTRv2?")

        noob_key_path = os.path.join(sys.modules["weechat"].weechat_dir, "otr", "[email protected]")

        noob2_key_path = os.path.join(sys.modules["weechat"].weechat_dir, "otr", "[email protected]")

        with open(noob_key_path, "rb") as noob_key:
            with open(noob2_key_path, "rb") as noob2_key:
                self.assertEqual(noob_key.read(), noob2_key.read())
コード例 #13
0
ファイル: test_otr_session.py プロジェクト: mmb/weechat-otr
    def test_otr_change_my_nick_case(self):
        sys.modules['weechat'].set_server_current_nick('server', 'nick')

        account1 = weechat_otr_test.recording_account.RecordingAccount(
            'nick@server')
        weechat_otr.ACCOUNTS['nick@server'] = account1

        account2 = weechat_otr_test.recording_account.RecordingAccount(
            'nick2@server')
        weechat_otr.ACCOUNTS['nick2@server'] = account2

        context1 = account2.getContext('nick@server')
        context2 = account1.getContext('nick2@server')

        weechat_otr.message_in_cb(
            None, None, 'server', ':nick2!user@host PRIVMSG nick :?OTRv2?')

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')
        self.send_all('nick', 'nick2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick')
        self.send_all('nick2', 'nick', context1.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')
        self.send_all('nick', 'nick2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick')
        self.send_all('nick2', 'nick', context1.injected)

        self.assertTrue(context1.is_encrypted())
        self.assertTrue(context2.is_encrypted())

        sys.modules['weechat'].set_server_current_nick('server', 'NiCk')
        weechat_otr.message_out_cb(
            None, None, 'server', ':NiCk!user@host PRIVMSG nick2 :hi')

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')

        result = weechat_otr.message_in_cb(
            None, None, 'server',
            ':NiCk!user@host PRIVMSG nick2 :%s' % context2.injected.pop())

        self.assertEqual(result, ':NiCk!user@host PRIVMSG nick2 :hi')
コード例 #14
0
    def test_otr_change_my_nick_case(self):
        sys.modules['weechat'].set_server_current_nick('server', 'nick')

        account1 = weechat_otr_test.recording_account.RecordingAccount(
            'nick@server')
        weechat_otr.ACCOUNTS['nick@server'] = account1

        account2 = weechat_otr_test.recording_account.RecordingAccount(
            'nick2@server')
        weechat_otr.ACCOUNTS['nick2@server'] = account2

        context1 = account2.getContext('nick@server')
        context2 = account1.getContext('nick2@server')

        weechat_otr.message_in_cb(None, None, 'server',
                                  ':nick2!user@host PRIVMSG nick :?OTRv2?')

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')
        self.send_all('nick', 'nick2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick')
        self.send_all('nick2', 'nick', context1.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')
        self.send_all('nick', 'nick2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'nick')
        self.send_all('nick2', 'nick', context1.injected)

        self.assertTrue(context1.is_encrypted())
        self.assertTrue(context2.is_encrypted())

        sys.modules['weechat'].set_server_current_nick('server', 'NiCk')
        weechat_otr.message_out_cb(None, None, 'server',
                                   ':NiCk!user@host PRIVMSG nick2 :hi')

        sys.modules['weechat'].set_server_current_nick('server', 'nick2')

        result = weechat_otr.message_in_cb(
            None, None, 'server',
            ':NiCk!user@host PRIVMSG nick2 :%s' % context2.injected.pop())

        self.assertEqual(result, ':NiCk!user@host PRIVMSG nick2 :hi')
コード例 #15
0
    def test_preserves_existing_keys_if_default_key(self):
        sys.modules['weechat'].set_server_current_nick('server', 'noob2')

        weechat_otr.message_in_cb(None, None, 'server',
                                  ':nick!user@host PRIVMSG noob2 :?OTRv2?')

        account = weechat_otr.ACCOUNTS['noob2@server']
        orig_noob2_priv_key = account.getPrivkey()

        sys.modules['weechat'].set_server_current_nick('server', 'noob')

        weechat_otr.message_in_cb(None, None, 'server',
                                  ':nick!user@host PRIVMSG noob :?OTRv2?')

        sys.modules['weechat'].config_options[
            'otr.general.defaultkey'] = 'noob@server'

        account.privkey = None

        sys.modules['weechat'].set_server_current_nick('server', 'noob2')

        weechat_otr.message_in_cb(None, None, 'server',
                                  ':nick!user@host PRIVMSG noob2 :?OTRv2?')

        self.assertEqual(account.privkey, orig_noob2_priv_key)
コード例 #16
0
    def test_preserves_existing_keys_if_default_key(self):
        sys.modules['weechat'].set_server_current_nick('server', 'noob2')

        weechat_otr.message_in_cb(
            None, None, 'server', ':nick!user@host PRIVMSG noob2 :?OTRv2?')

        account = weechat_otr.ACCOUNTS['noob2@server']
        orig_noob2_priv_key = account.getPrivkey()

        sys.modules['weechat'].set_server_current_nick('server', 'noob')

        weechat_otr.message_in_cb(
            None, None, 'server', ':nick!user@host PRIVMSG noob :?OTRv2?')

        sys.modules['weechat'].config_options[
            'otr.general.defaultkey'] = 'noob@server'

        account.privkey = None

        sys.modules['weechat'].set_server_current_nick('server', 'noob2')

        weechat_otr.message_in_cb(
            None, None, 'server', ':nick!user@host PRIVMSG noob2 :?OTRv2?')

        self.assertEqual(account.privkey, orig_noob2_priv_key)
コード例 #17
0
    def test_action_encrypted(self):
        account = \
            weechat_otr_test.raising_account.RaisingAccount('nick@server')
        weechat_otr.ACCOUNTS['nick@server'] = account
        context = account.getContext('friend@server')
        context.unencrypted = ['\x01ACTION lols\x01']

        result = weechat_otr.message_in_cb(
            None, None, 'server', ':friend!user@host PRIVMSG nick :test')

        self.assertEqual(result,
            ':friend!user@host PRIVMSG nick :Unencrypted message received: '
            '/me lols')
コード例 #18
0
    def test_creates_key_file_from_default_key(self):
        sys.modules['weechat'].set_server_current_nick('server', 'noob')

        weechat_otr.message_in_cb(None, None, 'server',
                                  ':nick!user@host PRIVMSG noob :?OTRv2?')

        sys.modules['weechat'].config_options[
            'otr.general.defaultkey'] = 'noob@server'

        sys.modules['weechat'].set_server_current_nick('server', 'noob2')

        weechat_otr.message_in_cb(None, None, 'server',
                                  ':nick!user@host PRIVMSG noob2 :?OTRv2?')

        noob_key_path = os.path.join(sys.modules['weechat'].weechat_dir, 'otr',
                                     '[email protected]')

        noob2_key_path = os.path.join(sys.modules['weechat'].weechat_dir,
                                      'otr', '[email protected]')

        with open(noob_key_path, 'rb') as noob_key:
            with open(noob2_key_path, 'rb') as noob2_key:
                self.assertEqual(noob_key.read(), noob2_key.read())
コード例 #19
0
    def test_action_encrypted(self):
        account = \
            weechat_otr_test.raising_account.RaisingAccount('nick@server')
        weechat_otr.ACCOUNTS['nick@server'] = account
        context = account.getContext('friend@server')
        context.unencrypted = ['\x01ACTION lols\x01']

        result = weechat_otr.message_in_cb(
            None, None, 'server', ':friend!user@host PRIVMSG nick :test')

        self.assertEqual(
            result,
            ':friend!user@host PRIVMSG nick :Unencrypted message received: '
            '/me lols')
コード例 #20
0
    def test_preserves_existing_keys_if_default_key(self):
        sys.modules["weechat"].set_server_current_nick("server", "noob2")

        weechat_otr.message_in_cb(None, None, "server", ":nick!user@host PRIVMSG noob2 :?OTRv2?")

        account = weechat_otr.ACCOUNTS["noob2@server"]
        orig_noob2_priv_key = account.getPrivkey()

        sys.modules["weechat"].set_server_current_nick("server", "noob")

        weechat_otr.message_in_cb(None, None, "server", ":nick!user@host PRIVMSG noob :?OTRv2?")

        sys.modules["weechat"].config_options["otr.general.defaultkey"] = "noob@server"

        account.privkey = None

        sys.modules["weechat"].set_server_current_nick("server", "noob2")

        weechat_otr.message_in_cb(None, None, "server", ":nick!user@host PRIVMSG noob2 :?OTRv2?")

        self.assertEqual(account.privkey, orig_noob2_priv_key)
コード例 #21
0
    def test_otr_session_non_ascii(self):
        sys.modules['weechat'].set_server_current_nick('server', 'gefährte')
        sys.modules['weechat'].infos.update({
            (weechat_otr.PYVER.to_str('server,gefährte'), ): {
                'irc_buffer': 'server_gefährte_buffer'
            },
            (weechat_otr.PYVER.to_str('server,gefährte2'), ): {
                'irc_buffer': 'server_gefährte2_buffer'
            },
        })
        sys.modules['weechat'].buffers.update({
            weechat_otr.PYVER.to_str('server_gefährte_buffer'): {
                'localvar_type': 'private',
                'localvar_channel': 'gefährte',
                'localvar_server': 'server',
                'name': 'server_gefährte_buffer_name',
                'plugin': 'irc',
            },
            weechat_otr.PYVER.to_str('server_gefährte2_buffer'): {
                'localvar_type': 'private',
                'localvar_channel': 'gefährte2',
                'localvar_server': 'server',
                'name': 'server_gefährte2_buffer_name',
                'plugin': 'irc',
            },
        })

        account1 = weechat_otr_test.recording_account.RecordingAccount(
            'gefährte@server')
        weechat_otr.ACCOUNTS['gefährte@server'] = account1

        account2 = weechat_otr_test.recording_account.RecordingAccount(
            'gefährte2@server')
        weechat_otr.ACCOUNTS['gefährte2@server'] = account2

        context1 = account2.getContext('gefährte@server')
        context2 = account1.getContext('gefährte2@server')

        weechat_otr.message_in_cb(
            None, None, 'server',
            ':gefährte2!user@host PRIVMSG gefährte :?OTRv2?')

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte2')
        self.send_all('gefährte', 'gefährte2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte')
        self.send_all('gefährte2', 'gefährte', context1.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte2')
        self.send_all('gefährte', 'gefährte2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte')
        self.send_all('gefährte2', 'gefährte', context1.injected)

        self.assertTrue(context1.is_encrypted())
        self.assertTrue(context2.is_encrypted())

        weechat_otr.message_out_cb(
            None, None, 'server', ':gefährte!user@host PRIVMSG gefährte2 :hi')

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte2')

        result = weechat_otr.message_in_cb(
            None, None, 'server',
            ':gefährte!user@host PRIVMSG gefährte2 :%s' % \
            context2.injected.pop())

        self.assertEqual(
            result,
            weechat_otr.PYVER.to_str(
                ':gefährte!user@host PRIVMSG gefährte2 :hi'))
コード例 #22
0
ファイル: test_otr_session.py プロジェクト: mmb/weechat-otr
    def test_otr_session_non_ascii(self):
        sys.modules['weechat'].set_server_current_nick('server', 'gefährte')
        sys.modules['weechat'].infos.update({
            (weechat_otr.PYVER.to_str('server,gefährte'),) :
                {'irc_buffer' : 'server_gefährte_buffer'},
            (weechat_otr.PYVER.to_str('server,gefährte2'),) :
                {'irc_buffer' : 'server_gefährte2_buffer'},
            })
        sys.modules['weechat'].buffers.update({
            weechat_otr.PYVER.to_str('server_gefährte_buffer') : {
                'localvar_type' : 'private',
                'localvar_channel' : 'gefährte',
                'localvar_server' : 'server',
                'name' : 'server_gefährte_buffer_name',
                'plugin' : 'irc',
                },
            weechat_otr.PYVER.to_str('server_gefährte2_buffer') : {
                'localvar_type' : 'private',
                'localvar_channel' : 'gefährte2',
                'localvar_server' : 'server',
                'name' : 'server_gefährte2_buffer_name',
                'plugin' : 'irc',
                },
            })

        account1 = weechat_otr_test.recording_account.RecordingAccount(
            'gefährte@server')
        weechat_otr.ACCOUNTS['gefährte@server'] = account1

        account2 = weechat_otr_test.recording_account.RecordingAccount(
            'gefährte2@server')
        weechat_otr.ACCOUNTS['gefährte2@server'] = account2

        context1 = account2.getContext('gefährte@server')
        context2 = account1.getContext('gefährte2@server')

        weechat_otr.message_in_cb(
            None, None, 'server',
            ':gefährte2!user@host PRIVMSG gefährte :?OTRv2?')

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte2')
        self.send_all('gefährte', 'gefährte2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte')
        self.send_all('gefährte2', 'gefährte', context1.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte2')
        self.send_all('gefährte', 'gefährte2', context2.injected)

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte')
        self.send_all('gefährte2', 'gefährte', context1.injected)

        self.assertTrue(context1.is_encrypted())
        self.assertTrue(context2.is_encrypted())

        weechat_otr.message_out_cb(
            None, None, 'server', ':gefährte!user@host PRIVMSG gefährte2 :hi')

        sys.modules['weechat'].set_server_current_nick('server', 'gefährte2')

        result = weechat_otr.message_in_cb(
            None, None, 'server',
            ':gefährte!user@host PRIVMSG gefährte2 :%s' % \
            context2.injected.pop())

        self.assertEqual(result, weechat_otr.PYVER.to_str(
            ':gefährte!user@host PRIVMSG gefährte2 :hi'))