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())
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)
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')))
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())
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)
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())
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())
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)
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)
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)
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())
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')
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')
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)
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)
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')
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())
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')
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)
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'))
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'))