def test_send_join_secret(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_join('#sopel', 'secret_p4s5w0rd') expected = 'JOIN #sopel secret_p4s5w0rd\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_prepare_command(): backend = MockIRCBackend(BotCollector()) result = backend.prepare_command('INFO') assert result == 'INFO\r\n' result = backend.prepare_command('NICK', 'Sopel') assert result == 'NICK Sopel\r\n'
def test_send_user(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_user('sopel', '+iw', 'Sopel', 'Sopel (https://sopel.chat)') expected = 'USER sopel +iw Sopel :Sopel (https://sopel.chat)\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_prepare_command_text_too_long(): backend = MockIRCBackend(BotCollector()) max_length = 510 - len('PRIVMSG #sopel :') text = '-' * (max_length + 1) # going above max length by one expected = 'PRIVMSG #sopel :%s\r\n' % text[:max_length] result = backend.prepare_command('PRIVMSG', '#sopel', text=text) assert result == expected
def test_send_pass(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_pass('secret_p4s5w0rd') expected = 'PASS secret_p4s5w0rd\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_pong(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_pong('chat.freenode.net') expected = 'PONG chat.freenode.net\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_nick(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_nick('Sopel') expected = 'NICK Sopel\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_privmsg(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_privmsg('#sopel', 'Hello world!') expected = 'PRIVMSG #sopel :Hello world!\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_notice_safe(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_notice('#sopel', 'Hello\r\nworld!') expected = 'NOTICE #sopel :Helloworld!\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_kick_text(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_kick('#sopel', 'spambot', reason='Flood!') expected = 'KICK #sopel spambot :Flood!\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_part_text(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_part('#sopel', 'Bye Sopelunkers!') expected = 'PART #sopel :Bye Sopelunkers!\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_quit_text(): bot = BotCollector() backend = MockIRCBackend(bot) backend.connected = True # TODO: refactor without attribute backend.send_quit(reason='Bye freenode!') expected = 'QUIT :Bye freenode!\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_quit(): bot = BotCollector() backend = MockIRCBackend(bot) backend.connected = True backend.send_quit() expected = 'QUIT\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_backend_clear_message_sent(): items = ['a', 'b', 'c'] backend = MockIRCBackend(bot=None) backend.message_sent = items result = backend.clear_message_sent() assert result == items assert result is not items, 'The result should be a copy.' assert not backend.message_sent, '`message_sent` must be empty'
def test_send_command_args_text_safe(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_command('PRIVMSG', '#sopel', text='Unsafe\ntext') expected = 'PRIVMSG #sopel :Unsafetext\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_command_args_text(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_command('KICK', 'Exirel', text='Too many PRs!') expected = 'KICK Exirel :Too many PRs!\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_command_text(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_command('HELP', text='?') expected = 'HELP :?\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_send_command(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_command('INFO') expected = 'INFO\r\n' assert backend.message_sent == [expected.encode('utf-8')] assert bot.message_sent == [expected]
def test_prepare_command_text(): backend = MockIRCBackend(BotCollector()) result = backend.prepare_command('PRIVMSG', '#sopel', text='Hello world!') assert result == 'PRIVMSG #sopel :Hello world!\r\n' max_length = 510 - len('PRIVMSG #sopel :') text = '-' * max_length expected = 'PRIVMSG #sopel :%s\r\n' % text result = backend.prepare_command('PRIVMSG', '#sopel', text=text) assert result == expected
def test_send_quit_disconnected(): bot = BotCollector() backend = MockIRCBackend(bot) backend.connected = False # TODO: refactor without attribute backend.send_quit() backend.send_quit(reason='Bye freenode!') assert backend.message_sent == [] assert bot.message_sent == []
def test_backend_irc_send(): backend = MockIRCBackend(bot=None) backend.irc_send('a') assert len(backend.message_sent) == 1 assert backend.message_sent == ['a'] backend.irc_send('b') assert len(backend.message_sent) == 2 assert backend.message_sent == ['a', 'b'] backend.irc_send(b'c') assert len(backend.message_sent) == 3 assert backend.message_sent == ['a', 'b', b'c']
def test_send_command_args_text_many(): bot = BotCollector() backend = MockIRCBackend(bot) backend.send_command('PRIVMSG', '#sopel', text='Hello here!') backend.send_command('PRIVMSG', '#sopel', text='I have a question.') expected_1 = 'PRIVMSG #sopel :Hello here!\r\n' expected_2 = 'PRIVMSG #sopel :I have a question.\r\n' assert backend.message_sent == [ expected_1.encode('utf-8'), expected_2.encode('utf-8') ] assert bot.message_sent == [expected_1, expected_2]