コード例 #1
0
ファイル: test_smp.py プロジェクト: fauno/weechat-otr
    def test_smp_respond_nick_server_secret(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(
            None, 'server_nick2_buffer', 'smp respond nick2 server secret')

        self.assertEqual(('secret', ), context.smp_got_secret)
コード例 #2
0
ファイル: test_policy.py プロジェクト: mmb/weechat-otr
    def test_policy_default_server_nick_buffer(self):
        weechat_otr.command_cb(None, None, 'policy default')

        self.assertPrinted('server_nick_buffer', (
            'eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
            '(color default)'
            'Current default OTR policies:\r\n'
            '(color default)'
            '  allow_v2 (allow OTR protocol version 2, effectively enable '
            'OTR since v2 is the only supported version) : on\r\n'
            '(color default)'
            '  html_escape (escape HTML special characters in outbound '
            'messages) : off\r\n'
            '(color default)'
            '  html_filter (filter HTML in incoming messages) : on\r\n'
            '(color default)'
            '  log (enable logging of OTR conversations) : off\r\n'
            '(color default)'
            '  require_encryption (refuse to send unencrypted messages when '
            'OTR is enabled) : off\r\n'
            '(color default)'
            '  send_tag (advertise your OTR capability using the whitespace '
            'tag) : off\r\n'
            '(color default)'
            'Change default policies with: /otr policy default NAME on|off'))
コード例 #3
0
    def test_fingerprint_pattern(self):
        fpr_path1 = os.path.join(sys.modules['weechat'].weechat_dir, 'otr',
                                 '*****@*****.**')
        with open(fpr_path1, 'w') as f:
            for fields in [
                ['notamachxxx@server', 'nick@server', 'irc', 'fp123', ''],
                ['matchxxxxxx@server', 'nick@server', 'irc', 'fp123', ''],
                ['beforematch@server', 'nick@server', 'irc', 'fp123', ''],
                ['before@servermatch', 'nick@server', 'irc', 'fp123', ''],
            ]:
                f.write("\t".join(fields))
                f.write("\n")

        account1 = weechat_otr.ACCOUNTS['nick@server']
        account1.getPrivkey()

        weechat_otr.command_cb(None, None, 'fingerprint match')

        self.assertNoPrintedContains('', 'notamachxxx@server')

        self.assertPrinted(
            '', ('eval(${color:default}:! ${color:brown}otr${color:default}'
                 ' !:)\t'
                 '(color default)before@servermatch |nick@server |F P 1 2 3 |'
                 'unverified\r\n'
                 '(color default)beforematch@server |nick@server |F P 1 2 3 |'
                 'unverified\r\n'
                 '(color default)matchxxxxxx@server |nick@server |F P 1 2 3 |'
                 'unverified'))
コード例 #4
0
    def test_smp_respond_nick_server_secret(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(None, 'server_nick2_buffer',
                               'smp respond nick2 server secret')

        self.assertEqual(('secret', ), context.smp_got_secret)
コード例 #5
0
    def test_smp_ask_question_secret(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(None, 'server_nick2_buffer',
                               'smp ask question secret')

        self.assertEqual(('secret', 'question'), context.smp_init)
コード例 #6
0
    def test_smp_ask_nick_server_secret(self):
        context = self.setup_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(
            None, None, 'smp ask nick2 server secret')

        self.assertEqual(('secret', None), context.smp_init)
コード例 #7
0
    def test_smp_abort(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')
        context.in_smp = True

        weechat_otr.command_cb(None, 'server_nick2_buffer', 'smp abort')

        self.assertEqual([('SMP aborted.', )], context.smp_finishes)
コード例 #8
0
ファイル: test_fingerprint.py プロジェクト: mmb/weechat-otr
    def test_fingerprint_pattern(self):
        fpr_path1 = os.path.join(
            sys.modules['weechat'].weechat_dir,
            'otr',
            '*****@*****.**')
        with open(fpr_path1, 'w') as f:
            for fields in [
                    ['notamachxxx@server', 'nick@server', 'irc', 'fp123', ''],
                    ['matchxxxxxx@server', 'nick@server', 'irc', 'fp123', ''],
                    ['beforematch@server', 'nick@server', 'irc', 'fp123', ''],
                    ['before@servermatch', 'nick@server', 'irc', 'fp123', ''],
                ]:
                f.write("\t".join(fields))
                f.write("\n")

        account1 = weechat_otr.ACCOUNTS['nick@server']
        account1.getPrivkey()

        weechat_otr.command_cb(None, None, 'fingerprint match')

        self.assertNoPrintedContains('', 'notamachxxx@server')

        self.assertPrinted('', (
            'eval(${color:default}:! ${color:brown}otr${color:default}'
            ' !:)\t'
            '(color default)before@servermatch |nick@server |F P 1 2 3 |'
            'unverified\r\n'
            '(color default)beforematch@server |nick@server |F P 1 2 3 |'
            'unverified\r\n'
            '(color default)matchxxxxxx@server |nick@server |F P 1 2 3 |'
            'unverified'))
コード例 #9
0
ファイル: test_smp.py プロジェクト: fauno/weechat-otr
    def test_smp_ask_question_secret(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(
            None, 'server_nick2_buffer', 'smp ask question secret')

        self.assertEqual(('secret', 'question'), context.smp_init)
コード例 #10
0
ファイル: test_smp.py プロジェクト: fauno/weechat-otr
    def test_smp_abort(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')
        context.in_smp = True

        weechat_otr.command_cb(None, 'server_nick2_buffer', 'smp abort')

        self.assertEqual([('SMP aborted.',)], context.smp_finishes)
コード例 #11
0
    def f(self):
        sys.modules['weechat'].infos.update({
            ('arg2', ): {
                'irc_nick': ''
            },
            ('arg2,arg1', ): {
                'irc_buffer': 'arg2_arg1_buffer'
            },
        })
        sys.modules['weechat'].buffers.update({
            'arg2_arg1_buffer': {
                'localvar_type': 'private',
                'name': 'arg2_arg1_buffer_name',
                'plugin': 'irc',
            },
        })

        args = ["arg{i}".format(i=i) for i in range(1, num_args + 1)]
        arg_str = ' '.join(args)
        try:
            weechat_otr.command_cb(
                None, None, "{command} {args}".format(command=command,
                                                      args=arg_str))
        except potr.context.NotEncryptedError:
            pass
コード例 #12
0
ファイル: test_weechat_otr.py プロジェクト: fauno/weechat-otr
 def test_print_buffer_not_private(self):
     weechat_otr.command_cb(None, None, 'start no_window_nick server')
     self.assertPrinted('non_private_buffer', (
         'eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
         '(color lightblue)'
         '[no_window_nick] Sending OTR query... Please await confirmation '
         'of the OTR session being started before sending a message.'))
コード例 #13
0
ファイル: test_smp.py プロジェクト: fauno/weechat-otr
    def test_smp_ask_nick_server_secret(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(
            None, None, 'smp ask nick2 server secret')

        self.assertEqual(('secret', None), context.smp_init)
コード例 #14
0
    def test_command_cb_start_send_tag_off_with_hints(self):
        sys.modules['weechat'].config_options['otr.general.hints'] = 'on'
        weechat_otr.command_cb(None, None, 'start')

        self.assertPrinted('server_nick_buffer',
            'otr\tTo try OTR on all conversations with nick@server: /otr ' +
            'policy send_tag on')
コード例 #15
0
    def test_policy_default_server_nick_buffer(self):
        weechat_otr.command_cb(None, None, 'policy default')

        self.assertPrinted(
            'server_nick_buffer',
            ('eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
             '(color default)'
             'Current default OTR policies:\r\n'
             '(color default)'
             '  allow_v2 (allow OTR protocol version 2, effectively enable '
             'OTR since v2 is the only supported version) : on\r\n'
             '(color default)'
             '  html_escape (escape HTML special characters in outbound '
             'messages) : off\r\n'
             '(color default)'
             '  html_filter (filter HTML in incoming messages) : on\r\n'
             '(color default)'
             '  log (enable logging of OTR conversations) : off\r\n'
             '(color default)'
             '  require_encryption (refuse to send unencrypted messages when '
             'OTR is enabled) : off\r\n'
             '(color default)'
             '  send_tag (advertise your OTR capability using the whitespace '
             'tag) : off\r\n'
             '(color default)'
             'Change default policies with: /otr policy default NAME on|off'))
コード例 #16
0
    def test_command_cb_start_send_tag_on(self):
        sys.modules['weechat'].config_options[
            'otr.policy.server.nick.nick.send_tag'] = 'on'
        weechat_otr.command_cb(None, None, 'start')

        self.assertPrinted('server_nick_buffer',
          'otr\tSending OTR query... Please await confirmation of the OTR ' +
          'session being started before sending a message.')
コード例 #17
0
 def test_print_buffer_not_private(self):
     weechat_otr.command_cb(None, None, 'start no_window_nick server')
     self.assertPrinted(
         'non_private_buffer',
         ('eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
          '(color lightblue)'
          '[no_window_nick] Sending OTR query... Please await confirmation '
          'of the OTR session being started before sending a message.'))
コード例 #18
0
ファイル: test_smp.py プロジェクト: fauno/weechat-otr
    def test_smp_ask_nick_server_secret_non_ascii(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(None, None,
            weechat_otr.PYVER.to_str('smp ask nick2 server motörhead'))

        self.assertEqual((weechat_otr.PYVER.to_str('motörhead'), None),
            context.smp_init)
コード例 #19
0
ファイル: test_smp.py プロジェクト: fauno/weechat-otr
    def test_smp_respond_secret_non_ascii(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(None, 'server_nick2_buffer',
            weechat_otr.PYVER.to_str('smp respond deathtöngue'))

        self.assertEqual((weechat_otr.PYVER.to_str('deathtöngue'), ),
            context.smp_got_secret)
コード例 #20
0
    def test_smp_ask_nick_server_secret_non_ascii(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(
            None, None,
            weechat_otr.PYVER.to_str('smp ask nick2 server motörhead'))

        self.assertEqual((weechat_otr.PYVER.to_str('motörhead'), None),
                         context.smp_init)
コード例 #21
0
    def test_smp_respond_secret_non_ascii(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(
            None, 'server_nick2_buffer',
            weechat_otr.PYVER.to_str('smp respond deathtöngue'))

        self.assertEqual((weechat_otr.PYVER.to_str('deathtöngue'), ),
                         context.smp_got_secret)
コード例 #22
0
ファイル: test_weechat_otr.py プロジェクト: fauno/weechat-otr
    def test_command_cb_start_send_tag_off_with_hints(self):
        sys.modules['weechat'].config_options['otr.general.hints'] = 'on'
        weechat_otr.command_cb(None, None, 'start')

        self.assertPrinted('server_nick_buffer', (
            'eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
            '(color lightblue)'
            'To try OTR on all conversations with nick@server: /otr '
            'policy send_tag on'))
コード例 #23
0
    def test_command_cb_start_send_tag_off_with_hints(self):
        sys.modules['weechat'].config_options['otr.general.hints'] = 'on'
        weechat_otr.command_cb(None, None, 'start')

        self.assertPrinted(
            'server_nick_buffer',
            ('eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
             '(color lightblue)'
             'To try OTR on all conversations with nick@server: /otr '
             'policy send_tag on'))
コード例 #24
0
ファイル: test_smp.py プロジェクト: fauno/weechat-otr
    def test_smp_ask_nick_server_question_secret_multiple_words(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(
            None, None, "smp ask nick2 server 'what is the secret?' "
            "'eastmost penninsula is the secret'")

        self.assertEqual(
            ('eastmost penninsula is the secret', 'what is the secret?'),
            context.smp_init)
コード例 #25
0
    def test_command_cb_start_send_tag_off(self):
        weechat_otr.command_cb(None, None, 'start')

        self.assertPrinted('server_nick_buffer',
          'otr\tSending OTR query... Please await confirmation of the OTR ' +
          'session being started before sending a message.')

        self.assertPrinted('server_nick_buffer',
          'otr\tTo try OTR on all conversations with nick@server: /otr ' +
          'policy send_tag on')
コード例 #26
0
ファイル: test_weechat_otr.py プロジェクト: fauno/weechat-otr
    def test_command_cb_start_send_tag_on(self):
        sys.modules['weechat'].config_options[
            'otr.policy.server.nick.nick.send_tag'] = 'on'
        weechat_otr.command_cb(None, None, 'start')

        self.assertPrinted('server_nick_buffer', (
          'eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
          '(color lightblue)'
          'Sending OTR query... Please await confirmation of the OTR '
          'session being started before sending a message.'))
コード例 #27
0
    def test_smp_ask_nick_server_question_secret_multiple_words(self):
        context = self.setup_smp_context('nick@server', 'nick2@server')

        weechat_otr.command_cb(
            None, None, "smp ask nick2 server 'what is the secret?' "
            "'eastmost penninsula is the secret'")

        self.assertEqual(
            ('eastmost penninsula is the secret', 'what is the secret?'),
            context.smp_init)
コード例 #28
0
    def test_command_cb_start_send_tag_on(self):
        sys.modules['weechat'].config_options[
            'otr.policy.server.nick.nick.send_tag'] = 'on'
        weechat_otr.command_cb(None, None, 'start')

        self.assertPrinted(
            'server_nick_buffer',
            ('eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
             '(color lightblue)'
             'Sending OTR query... Please await confirmation of the OTR '
             'session being started before sending a message.'))
コード例 #29
0
ファイル: test_weechat_otr.py プロジェクト: fauno/weechat-otr
    def test_command_cb_start_send_tag_off(self):
        weechat_otr.command_cb(None, None, 'start')

        self.assertPrinted('server_nick_buffer', (
          'eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
          '(color lightblue)'
          'Sending OTR query... Please await confirmation of the OTR '
          'session being started before sending a message.'))

        self.assertPrinted('server_nick_buffer', (
          'eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
          '(color lightblue)'
          'To try OTR on all conversations with nick@server: /otr '
          'policy send_tag on'))
コード例 #30
0
ファイル: test_policy.py プロジェクト: fauno/weechat-otr
    def test_policy_default_no_server_nick_buffer(self):
        weechat_otr.command_cb(None, 'non_private_buffer', 'policy default')

        self.assertPrinted('', (
            'Current default OTR policies:\n'
            '  allow_v2 (allow OTR protocol version 2) : on\n'
            '  html_escape (escape HTML special characters in outbound '
            'messages) : off\n'
            '  html_filter (filter HTML in incoming messages) : on\n'
            '  log (enable logging of OTR conversations) : off\n'
            '  require_encryption (refuse to send unencrypted messages) : '
            'off\n'
            '  send_tag (advertise your OTR capability using the whitespace '
            'tag) : off\n'
            'Change default policies with: /otr policy default NAME on|off'))
コード例 #31
0
    def test_command_cb_start_send_tag_off(self):
        weechat_otr.command_cb(None, None, 'start')

        self.assertPrinted(
            'server_nick_buffer',
            ('eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
             '(color lightblue)'
             'Sending OTR query... Please await confirmation of the OTR '
             'session being started before sending a message.'))

        self.assertPrinted(
            'server_nick_buffer',
            ('eval(${color:default}:! ${color:brown}otr${color:default} !:)\t'
             '(color lightblue)'
             'To try OTR on all conversations with nick@server: /otr '
             'policy send_tag on'))
コード例 #32
0
    def test_fingerprint(self):
        account1 = weechat_otr.ACCOUNTS['nick@server']
        account1.getPrivkey()

        account2 = weechat_otr.ACCOUNTS['nick2@server2']
        account2.getPrivkey()

        weechat_otr.command_cb(None, None, 'fingerprint')

        self.assertPrinted(
            '',
            ('eval(${{color:default}}:! ${{color:brown}}otr${{color:default}}'
             ' !:)\t'
             '(color default)nick2@server2 |{fp2}\r\n'
             '(color default)nick@server   |{fp1}').format(
                 fp1=account1.getPrivkey(), fp2=account2.getPrivkey()))
コード例 #33
0
ファイル: test_fingerprint.py プロジェクト: mmb/weechat-otr
    def test_fingerprint(self):
        account1 = weechat_otr.ACCOUNTS['nick@server']
        account1.getPrivkey()

        account2 = weechat_otr.ACCOUNTS['nick2@server2']
        account2.getPrivkey()

        weechat_otr.command_cb(None, None, 'fingerprint')

        self.assertPrinted('', (
            'eval(${{color:default}}:! ${{color:brown}}otr${{color:default}}'
            ' !:)\t'
            '(color default)nick2@server2 |{fp2}\r\n'
            '(color default)nick@server   |{fp1}').format(
                fp1=account1.getPrivkey(),
                fp2=account2.getPrivkey()))
コード例 #34
0
ファイル: test_fingerprint.py プロジェクト: mmb/weechat-otr
    def test_fingerprint_all(self):
        fpr_path1 = os.path.join(
            sys.modules['weechat'].weechat_dir,
            'otr',
            '*****@*****.**')
        with open(fpr_path1, 'w') as f:
            for fields in [
                    ['peer1@server', 'nick@server', 'irc', 'fp111', ''],
                    ['peer2@server', 'nick@server', 'irc', 'fp222', 'smp'],
                    ['peer3@server', 'nick@server', 'irc', 'fp333', 'verified'],
                ]:
                f.write("\t".join(fields))
                f.write("\n")

        account1 = weechat_otr.ACCOUNTS['nick@server']
        account1.getPrivkey()

        fpr_path2 = os.path.join(
            sys.modules['weechat'].weechat_dir,
            'otr',
            '*****@*****.**')
        with open(fpr_path2, 'w') as f:
            for fields in [
                    ['peer4@server2', 'nick2@server2', 'irc', 'fp444',
                     'verified'],
                ]:
                f.write("\t".join(fields))
                f.write("\n")

        account2 = weechat_otr.ACCOUNTS['nick2@server2']
        account2.getPrivkey()

        weechat_otr.command_cb(None, None, 'fingerprint all')

        self.assertPrinted('', (
            'eval(${color:default}:! ${color:brown}otr${color:default}'
            ' !:)\t'
            '(color default)peer4@server2 |nick2@server2 |F P 4 4 4 |'
            'verified    \r\n'
            '(color default)peer1@server  |nick@server   |F P 1 1 1 |'
            'unverified  \r\n'
            '(color default)peer2@server  |nick@server   |F P 2 2 2 |'
            'SMP verified\r\n'
            '(color default)peer3@server  |nick@server   |F P 3 3 3 |'
            'verified    '))
コード例 #35
0
    def f(self):
        sys.modules['weechat'].infos.update({
            ('arg2',) : {'irc_nick' : ''},
            ('arg2,arg1',) : {'irc_buffer' : 'arg2_arg1_buffer'},
        })
        sys.modules['weechat'].buffers.update({
            'arg2_arg1_buffer' : {
                'localvar_type' : 'private',
                'name' : 'arg2_arg1_buffer_name',
                'plugin' : 'irc',
            },
        })

        args = ["arg{i}".format(i=i) for i in range(1, num_args + 1)]
        arg_str = ' '.join(args)
        try:
            weechat_otr.command_cb(None, None,
                "{command} {args}".format(command=command, args=arg_str))
        except potr.context.NotEncryptedError:
            pass
コード例 #36
0
    def test_fingerprint_all(self):
        fpr_path1 = os.path.join(sys.modules['weechat'].weechat_dir, 'otr',
                                 '*****@*****.**')
        with open(fpr_path1, 'w') as f:
            for fields in [
                ['peer1@server', 'nick@server', 'irc', 'fp111', ''],
                ['peer2@server', 'nick@server', 'irc', 'fp222', 'smp'],
                ['peer3@server', 'nick@server', 'irc', 'fp333', 'verified'],
            ]:
                f.write("\t".join(fields))
                f.write("\n")

        account1 = weechat_otr.ACCOUNTS['nick@server']
        account1.getPrivkey()

        fpr_path2 = os.path.join(sys.modules['weechat'].weechat_dir, 'otr',
                                 '*****@*****.**')
        with open(fpr_path2, 'w') as f:
            for fields in [
                ['peer4@server2', 'nick2@server2', 'irc', 'fp444', 'verified'],
            ]:
                f.write("\t".join(fields))
                f.write("\n")

        account2 = weechat_otr.ACCOUNTS['nick2@server2']
        account2.getPrivkey()

        weechat_otr.command_cb(None, None, 'fingerprint all')

        self.assertPrinted(
            '', ('eval(${color:default}:! ${color:brown}otr${color:default}'
                 ' !:)\t'
                 '(color default)peer4@server2 |nick2@server2 |F P 4 4 4 |'
                 'verified    \r\n'
                 '(color default)peer1@server  |nick@server   |F P 1 1 1 |'
                 'unverified  \r\n'
                 '(color default)peer2@server  |nick@server   |F P 2 2 2 |'
                 'SMP verified\r\n'
                 '(color default)peer3@server  |nick@server   |F P 3 3 3 |'
                 'verified    '))
コード例 #37
0
    def test_refresh_args(self):
        weechat_otr.command_cb(None, None, 'refresh nick2 server')

        self.assertIn((u'', '/quote -server server PRIVMSG nick2 :?OTR?'),
                      sys.modules['weechat'].commands)
コード例 #38
0
 def test_print_buffer_not_private(self):
     weechat_otr.command_cb(None, None, 'start no_window_nick server')
     self.assertPrinted('non_private_buffer',
         'otr\t[no_window_nick] Sending OTR query... Please await ' +
         'confirmation of the OTR session being started before sending a ' +
         'message.')
コード例 #39
0
    def test_end_buffer(self):
        weechat_otr.command_cb(None, 'server_nick2_buffer', 'end')

        self.assertEqual(self.context.disconnects, 1)
コード例 #40
0
    def test_start_buffer(self):
        weechat_otr.command_cb(None, 'server_nick2_buffer', 'start')

        self.assertIn(
            (u'', '/quote -server server PRIVMSG nick2 :?OTR?'),
            sys.modules['weechat'].commands)
コード例 #41
0
    def test_end_args(self):
        weechat_otr.command_cb(None, None, 'end nick2 server')

        self.assertEqual(self.context.disconnects, 1)
コード例 #42
0
    def test_end_buffer(self):
        weechat_otr.command_cb(None, 'server_nick2_buffer', 'end')

        self.assertEqual(self.context.disconnects, 1)
コード例 #43
0
    def test_refresh_args(self):
        weechat_otr.command_cb(None, None, 'refresh nick2 server')

        self.assertIn(
            (u'', '/quote -server server PRIVMSG nick2 :?OTR?'),
            sys.modules['weechat'].commands)
コード例 #44
0
    def test_end_args(self):
        weechat_otr.command_cb(None, None, 'end nick2 server')

        self.assertEqual(self.context.disconnects, 1)
コード例 #45
0
    def test_start_buffer(self):
        weechat_otr.command_cb(None, 'server_nick2_buffer', 'start')

        self.assertIn((u'', '/quote -server server PRIVMSG nick2 :?OTR?'),
                      sys.modules['weechat'].commands)