122 lines
3.7 KiB
Python
122 lines
3.7 KiB
Python
# Yay tests!
|
|
|
|
import csv
|
|
import unittest
|
|
import newbot
|
|
import time
|
|
|
|
class TestBotClass(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.bot = newbot.Bot()
|
|
|
|
def test_csv_source(self):
|
|
self.assertEqual(self.bot.nick_source, 'nicks.csv')
|
|
|
|
def test_known_nicks_setup(self):
|
|
bot = newbot.Bot('test_nicks.csv')
|
|
self.assertEqual(bot.known_nicks, [['Alice'], ['Bob']])
|
|
|
|
def test_wait_time(self):
|
|
self.assertEqual(self.bot.wait_time, 60)
|
|
|
|
def test_custom_wait_time(self):
|
|
bot = newbot.Bot(wait_time=30)
|
|
self.assertEqual(bot.wait_time, 30)
|
|
|
|
def test_newcomers_setup(self):
|
|
self.assertEqual(self.bot.newcomers, [])
|
|
|
|
def test_add_nick_to_list(self):
|
|
self.bot.known_nicks = [['Fluffy'], ['Spot']]
|
|
self.bot.add_known_nick('Roger')
|
|
self.assertEqual(self.bot.known_nicks,[['Fluffy'], ['Spot'], ['Roger']])
|
|
|
|
def test_add_nick_underscore_removal(self):
|
|
self.bot.known_nicks = [['Fluffy'], ['Spot']]
|
|
self.bot.add_known_nick('Roger__')
|
|
self.assertEqual(self.bot.known_nicks,[['Fluffy'], ['Spot'], ['Roger']])
|
|
|
|
def test_add_nick_to_csv(self):
|
|
bot = newbot.Bot('test_nicks.csv')
|
|
bot.add_known_nick('Roger__')
|
|
with open('test_nicks.csv', 'rb') as csv_file:
|
|
known_nicks = []
|
|
csv_file_data = csv.reader(csv_file, delimiter=',', quotechar='|')
|
|
for row in csv_file_data:
|
|
known_nicks.append(row)
|
|
self.assertEqual(known_nicks, [['Alice'], ['Bob'], ['Roger']])
|
|
|
|
def tearDown(self):
|
|
with open('test_nicks.csv', 'w') as csv_file:
|
|
csv_file.write('Alice\nBob\n')
|
|
|
|
class TestNewComerClass(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.bot = newbot.Bot('test_nicks.csv')
|
|
self.NewComer = newbot.NewComer('Nancy', self.bot)
|
|
|
|
def test_newcomer_init_nick(self):
|
|
self.assertEqual(self.NewComer.nick, 'Nancy')
|
|
|
|
def test_newcomer_init_born(self):
|
|
newComer = newbot.NewComer('Baby', newbot.Bot())
|
|
time.sleep(0.01)
|
|
self.assertAlmostEqual(newComer.born, time.time() - .01, places=2)
|
|
|
|
def test_add_newcomer_to_bot(self):
|
|
pass
|
|
|
|
def test_newcomer_around_for(self):
|
|
newComer = newbot.NewComer('Shauna', newbot.Bot())
|
|
time.sleep(0.01)
|
|
self.assertAlmostEqual(newComer.around_for(), .01, places=2)
|
|
|
|
#
|
|
# Not sure how to test irc_start, thread_start or msg_handler yet.
|
|
#
|
|
|
|
class TestProcessNewcomers(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.bot = newbot.Bot('test_nicks.csv', wait_time=.1)
|
|
newbot.NewComer('Harry', self.bot)
|
|
newbot.NewComer('Hermione', self.bot)
|
|
time.sleep(.15)
|
|
newbot.NewComer('Ron', self.bot)
|
|
|
|
def test_check_new_newcomers(self):
|
|
newbot.process_newcomers(self.bot, [i for i in self.bot.newcomers if i.around_for() > self.bot.wait_time], welcome=0)
|
|
self.assertEqual(len(self.bot.newcomers), 1)
|
|
|
|
def test_check_new_known_nicks(self):
|
|
newbot.process_newcomers(self.bot, [i for i in self.bot.newcomers if i.around_for() > self.bot.wait_time], welcome=0)
|
|
self.assertEqual(self.bot.known_nicks,[['Alice'],['Bob'],['Harry'],['Hermione']])
|
|
|
|
## Should be a test of the welcome=1/welcome=0 functionality here, but not sure how to do that yet since welcome() calls ircsock.
|
|
|
|
def tearDown(self):
|
|
with open('test_nicks.csv', 'w') as csv_file:
|
|
csv_file.write('Alice\nBob\n')
|
|
|
|
#
|
|
# Not sure how to test check_messages.
|
|
#
|
|
|
|
class TestMessageResponse(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
pass
|
|
|
|
def tearDown(self):
|
|
pass
|
|
|
|
class TestProcessNewcomers(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
pass
|
|
|
|
def tearDown(self):
|
|
pass
|