def setUp(self): self.nicknames = set() patcher = patch('builtins.open') self.addCleanup(patcher.stop) patcher.start() patcher = patch('random.randint', return_value=123) self.addCleanup(patcher.stop) self.mock_randint = patcher.start() patcher = patch('pickle.load', return_value=self.nicknames) self.addCleanup(patcher.stop) patcher.start() patcher = patch('jabberbot.mucbot.Timer') self.addCleanup(patcher.stop) self.mock_timer = patcher.start() patcher = patch.object(MUCBot, 'register_plugin') self.addCleanup(patcher.stop) patcher.start() patcher = patch.object(MUCBot, 'add_event_handler') self.addCleanup(patcher.stop) patcher.start() patcher = patch.object(MUCBot, 'send_message') self.addCleanup(patcher.stop) patcher.start() self.bot = MUCBot('*****@*****.**', 'mypassword', '*****@*****.**', 'itsme', 'translator', 'translator_sec')
def setUp(self): self.nicknames = set() patcher = patch('builtins.open') self.addCleanup(patcher.stop) patcher.start() patcher = patch('random.randint', return_value=123) self.addCleanup(patcher.stop) self.mock_randint = patcher.start() patcher = patch('pickle.load', return_value=self.nicknames) self.addCleanup(patcher.stop) patcher.start() patcher = patch('jabberbot.mucbot.Timer') self.addCleanup(patcher.stop) self.mock_timer = patcher.start() patcher = patch.object(MUCBot, 'register_plugin') self.addCleanup(patcher.stop) patcher.start() patcher = patch.object(MUCBot, 'add_event_handler') self.addCleanup(patcher.stop) patcher.start() patcher = patch.object(MUCBot, 'send_message') self.addCleanup(patcher.stop) patcher.start() self.bot = MUCBot( '*****@*****.**', 'mypassword', '*****@*****.**', 'itsme', 'translator', 'translator_sec')
class TestMUCBot(unittest.TestCase): def setUp(self): self.nicknames = set() patcher = patch('builtins.open') self.addCleanup(patcher.stop) patcher.start() patcher = patch('random.randint', return_value=123) self.addCleanup(patcher.stop) self.mock_randint = patcher.start() patcher = patch('pickle.load', return_value=self.nicknames) self.addCleanup(patcher.stop) patcher.start() patcher = patch('jabberbot.mucbot.Timer') self.addCleanup(patcher.stop) self.mock_timer = patcher.start() patcher = patch.object(MUCBot, 'register_plugin') self.addCleanup(patcher.stop) patcher.start() patcher = patch.object(MUCBot, 'add_event_handler') self.addCleanup(patcher.stop) patcher.start() patcher = patch.object(MUCBot, 'send_message') self.addCleanup(patcher.stop) patcher.start() self.bot = MUCBot('*****@*****.**', 'mypassword', '*****@*****.**', 'itsme', 'translator', 'translator_sec') def test_commands(self): commands = self.bot.commands self.assertEqual(len(commands), 14, 'expected 14 commands') self.assertTrue('chuck' in commands) def test_registered_plugins(self): self.assertIn(call('xep_0045'), self.bot.register_plugin.mock_calls) def test_add_event_handler(self): self.bot.add_event_handler.assert_has_calls([ call('session_start', self.bot.start), call('session_end', self.bot.end), call('message', self.bot.message) ]) def test_automatic_subject_change(self): self.mock_timer.assert_called_once_with(123, self.bot._change_subject) self.mock_timer.return_value.start.assert_called_once_with() # empty nicknames self.bot._change_subject() self.nicknames.add('test') self.bot._change_subject() # should only be called once. If there are no nicknames it should # not be called self.bot.send_message.assert_called_once_with( mto='*****@*****.**', mbody=None, msubject='test ist ein Hengst', mtype='groupchat') self.assertEqual(self.mock_randint.call_count, 3) self.mock_randint.assert_has_calls( [call(3600, 43200), call(3600, 43200), call(3600, 43200)]) self.assertEqual(self.mock_timer.call_count, 3) self.assertEqual(self.mock_timer.return_value.start.call_count, 3) def test_start(self): self.bot.send_presence = MagicMock(name='send_presence') self.bot.get_roster = MagicMock(name='get_roster') self.bot.plugin = MagicMock(name='xep_0045') self.bot.start(None) self.assertTrue(self.bot.send_presence.called) self.assertTrue(self.bot.get_roster.called) self.bot.plugin['xep_0045'].joinMUC.assert_called_once_with( '*****@*****.**', 'itsme', wait=True) def test_end(self): self.bot.end(None) self.mock_timer.return_value.cancel.assert_called_once_with() def test_message_type_not_groupchat(self): msg = {'body': None, 'type': 'chat'} self.bot.message(msg) msg['type'] = 'foo' self.bot.message(msg) msg['type'] = None self.bot.message(msg) self.assertFalse(self.bot.send_message.called) def test_message_no_command_prefix(self): self.bot.commands['help'] = MagicMock(name='help') msg = {'body': '', 'type': 'groupchat'} self.bot.message(msg) msg['body'] = 'foo' self.bot.message(msg) msg['body'] = 'help' self.bot.message(msg) self.assertFalse(self.bot.send_message.called) def test_message_command_not_found(self): self.bot.commands['help'] = MagicMock(name='help') msg = {'body': '!foo', 'type': 'groupchat'} self.bot.message(msg) self.assertFalse(self.bot.send_message.called) def test_message_to_groupchat(self): help_mock = MagicMock(name='help') help_mock.run_command.return_value = ('groupchat', 'message body') self.bot.commands['help'] = help_mock msg = {'from': MagicMock(), 'type': 'groupchat', 'body': '!help'} self.bot.message(msg) self.bot.send_message.assert_called_once_with(mto=msg['from'].bare, mbody='message body', mtype='groupchat') def test_message_to_chat(self): help_mock = MagicMock(name='help') help_mock.run_command.return_value = ('chat', 'message body') self.bot.commands['help'] = help_mock msg = {'from': MagicMock(), 'type': 'groupchat', 'body': '!help'} self.bot.message(msg) self.bot.send_message.assert_called_once_with(mto=msg['from'], mbody='message body', mtype='chat')
#!/usr/bin/env python from jabberbot.mucbot import MUCBot jid = '' pwd = '' muc_room = '' muc_nick = '' trans_client_id = '' trans_client_sec = '' bot = MUCBot(jid, pwd, muc_room, muc_nick, trans_client_id, trans_client_sec) bot.connect() bot.process(block=True)
class TestMUCBot(unittest.TestCase): def setUp(self): self.nicknames = set() patcher = patch('builtins.open') self.addCleanup(patcher.stop) patcher.start() patcher = patch('random.randint', return_value=123) self.addCleanup(patcher.stop) self.mock_randint = patcher.start() patcher = patch('pickle.load', return_value=self.nicknames) self.addCleanup(patcher.stop) patcher.start() patcher = patch('jabberbot.mucbot.Timer') self.addCleanup(patcher.stop) self.mock_timer = patcher.start() patcher = patch.object(MUCBot, 'register_plugin') self.addCleanup(patcher.stop) patcher.start() patcher = patch.object(MUCBot, 'add_event_handler') self.addCleanup(patcher.stop) patcher.start() patcher = patch.object(MUCBot, 'send_message') self.addCleanup(patcher.stop) patcher.start() self.bot = MUCBot( '*****@*****.**', 'mypassword', '*****@*****.**', 'itsme', 'translator', 'translator_sec') def test_commands(self): commands = self.bot.commands self.assertEqual(len(commands), 14, 'expected 14 commands') self.assertTrue('chuck' in commands) def test_registered_plugins(self): self.assertIn(call('xep_0045'), self.bot.register_plugin.mock_calls) def test_add_event_handler(self): self.bot.add_event_handler.assert_has_calls([ call('session_start', self.bot.start), call('session_end', self.bot.end), call('message', self.bot.message) ]) def test_automatic_subject_change(self): self.mock_timer.assert_called_once_with(123, self.bot._change_subject) self.mock_timer.return_value.start.assert_called_once_with() # empty nicknames self.bot._change_subject() self.nicknames.add('test') self.bot._change_subject() # should only be called once. If there are no nicknames it should # not be called self.bot.send_message.assert_called_once_with( mto='*****@*****.**', mbody=None, msubject='test ist ein Hengst', mtype='groupchat') self.assertEqual(self.mock_randint.call_count, 3) self.mock_randint.assert_has_calls([ call(3600, 43200), call(3600, 43200), call(3600, 43200) ]) self.assertEqual(self.mock_timer.call_count, 3) self.assertEqual(self.mock_timer.return_value.start.call_count, 3) def test_start(self): self.bot.send_presence = MagicMock(name='send_presence') self.bot.get_roster = MagicMock(name='get_roster') self.bot.plugin = MagicMock(name='xep_0045') self.bot.start(None) self.assertTrue(self.bot.send_presence.called) self.assertTrue(self.bot.get_roster.called) self.bot.plugin['xep_0045'].joinMUC.assert_called_once_with( '*****@*****.**', 'itsme', wait=True) def test_end(self): self.bot.end(None) self.mock_timer.return_value.cancel.assert_called_once_with() def test_message_type_not_groupchat(self): msg = {'body': None, 'type': 'chat'} self.bot.message(msg) msg['type'] = 'foo' self.bot.message(msg) msg['type'] = None self.bot.message(msg) self.assertFalse(self.bot.send_message.called) def test_message_no_command_prefix(self): self.bot.commands['help'] = MagicMock(name='help') msg = {'body': '', 'type': 'groupchat'} self.bot.message(msg) msg['body'] = 'foo' self.bot.message(msg) msg['body'] = 'help' self.bot.message(msg) self.assertFalse(self.bot.send_message.called) def test_message_command_not_found(self): self.bot.commands['help'] = MagicMock(name='help') msg = {'body': '!foo', 'type': 'groupchat'} self.bot.message(msg) self.assertFalse(self.bot.send_message.called) def test_message_to_groupchat(self): help_mock = MagicMock(name='help') help_mock.run_command.return_value = ('groupchat', 'message body') self.bot.commands['help'] = help_mock msg = {'from': MagicMock(), 'type': 'groupchat', 'body': '!help'} self.bot.message(msg) self.bot.send_message.assert_called_once_with( mto=msg['from'].bare, mbody='message body', mtype='groupchat') def test_message_to_chat(self): help_mock = MagicMock(name='help') help_mock.run_command.return_value = ('chat', 'message body') self.bot.commands['help'] = help_mock msg = {'from': MagicMock(), 'type': 'groupchat', 'body': '!help'} self.bot.message(msg) self.bot.send_message.assert_called_once_with( mto=msg['from'], mbody='message body', mtype='chat')
# # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. from jabberbot.mucbot import MUCBot print("Leyendo configuracion...") jid = '*****@*****.**' #edita esto por una cuenta de jabber pwd = "pasword here" #Edita esto por tu password muc_room = '*****@*****.**' #edita esto por el servidor y la sala muc_nick = 'jabberstom' #Esto no lo edites el nombre es lindo xd print("Configuracion aceptada....") bot = MUCBot(jid, pwd, muc_room, muc_nick) print("conectando...") bot.connect() print( "El bot esta conectado y listo para usar.. Seria preferible correr el bot en background" ) bot.process(block=True)