2017-12-03 11:13:01 -08:00
import pytest
from contextlib import closing
from tests . lib import * # NOQA - fixtures
@pytest.fixture
def tellbot ( fakebot ) :
"""
Provide a bot loaded with the Calc module . Clear the database .
"""
fakebot . botconfig [ " module_configs " ] [ " Tell " ] = { " max " : 10 , " maxage " : 2678400 }
fakebot . loadmodule ( " SQLite " )
with closing ( fakebot . moduleInstances [ " SQLite " ] . opendb ( " tell.db " ) ) as db :
2017-12-03 20:54:39 -08:00
db . query ( " DROP TABLE IF EXISTS tells; " )
2017-12-03 11:13:01 -08:00
fakebot . loadmodule ( " Tell " )
return fakebot
def test_addtell ( tellbot ) :
tellbot . feed_line ( " .tell fudge foo " )
tellbot . act_PRIVMSG . assert_called_once_with ( " #test " , " chatter: I ' ll pass that along. " )
tellbot . act_PRIVMSG . reset_mock ( )
def test_gettell ( tellbot ) :
test_addtell ( tellbot )
tellbot . feed_line ( " . " , sender = ( " fudge " , " user " , " host " ) )
tellbot . act_PRIVMSG . assert_called_once_with ( " #test " , " fudge: chatter said 0 minutes ago: foo " )
def test_tellhelp ( tellbot ) :
tellbot . feed_line ( " .tell " )
tellbot . act_PRIVMSG . assert_called_once_with ( " #test " , " chatter: .tell <person> <message> - Tell someone something the next time they ' re seen. Example: .tell antiroach Do your homework! " )
def test_max ( tellbot ) :
for _ in range ( 0 , 10 ) :
tellbot . feed_line ( " .tell foobar asdf " )
tellbot . act_PRIVMSG . reset_mock ( )
tellbot . feed_line ( " .tell foobar asdf " )
tellbot . act_PRIVMSG . assert_not_called ( )