コード例 #1
0
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]
コード例 #2
0
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'
コード例 #3
0
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]
コード例 #4
0
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
コード例 #5
0
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]
コード例 #6
0
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]
コード例 #7
0
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]
コード例 #8
0
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]
コード例 #9
0
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]
コード例 #10
0
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]
コード例 #11
0
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]
コード例 #12
0
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]
コード例 #13
0
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]
コード例 #14
0
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'
コード例 #15
0
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]
コード例 #16
0
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]
コード例 #17
0
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]
コード例 #18
0
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]
コード例 #19
0
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
コード例 #20
0
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 == []
コード例 #21
0
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']
コード例 #22
0
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]