--- /dev/null
+from unittest import TestCase
+from coffee_getter.bot import Bot
+from ut.test_db import TESTDB_PATH, create_test_db, delete_test_db
+
+
+class CoffeeGetterBotTests(TestCase):
+ TOP = (
+ ("tester", 4*0.5 + 4*0.33),
+ ("newer", 2*0.33),
+ ("clone", 2*0.33))
+
+ def setUp(self):
+ create_test_db(TESTDB_PATH)
+ self.b = Bot(TESTDB_PATH)
+
+ def tearDown(self):
+ delete_test_db(TESTDB_PATH)
+
+ def test_blank_bot(self):
+ assert self.b.db
+ assert self.b.msg == ""
+ assert self.b.get_msg() == ""
+ assert self.b.top == []
+
+ def test_text_related_methods(self):
+ self.assertRaises(ValueError, self.b.send_msg_to, "test")
+ assert self.b.get_hero_comment() != ""
+ assert self.b.get_some_smile()[0] == ":"
+ assert self.b.get_some_smile()[-1] == ":"
+
+ def test_tops(self):
+ self.b.load_top_drinks()
+ assert len(self.b.top) > 0
+ assert len(self.b.msg) > 0
+ self.b.load_top_mate_drinkers()
+ assert len(self.b.top) > 0
+ assert len(self.b.msg) > 0
+ self.b.load_top_tea_drinkers()
+ assert len(self.b.top) > 0
+ assert len(self.b.msg) > 0
+
+ def test_drink_smile(self):
+ smiles = {
+ "tea": ":tea:",
+ "espresso": ":coffee:",
+ "espresso lungo": ":owl:",
+ "cappuccino": ":flara:",
+ "latte macchiato": ":baby_bottle:",
+ "Club-Mate 0,5 l": ":club-mate:",
+ "Club-Mate 0,33 l": ":club-mate_cola:",
+ }
+ for (d, s) in smiles.items():
+ assert self.b.get_drink_smile(d) == s
+
+ def test_strict_drinkers_order(self):
+ self.b.top = self.TOP
+ self.b.compute_equal_drinkers()
+ for i in range(len(self.b.topeq) - 1):
+ for (un1, c1) in self.b.topeq[i]:
+ for (un2, c2) in self.b.topeq[i + 1]:
+ self.assertTrue(c1 > c2)
+
+ def test_equal_drinkers(self):
+ self.b.top = self.TOP
+ self.b.compute_equal_drinkers()
+ for i in self.b.topeq:
+ cc = i[0][1]
+ for (un, c) in i:
+ assert cc == c
+
+ def test_equal_drinkers_len(self):
+ self.b.top = self.TOP
+ self.b.compute_equal_drinkers()
+ assert len(self.b.topeq) == 2
+
+ def test_nof_args(self):
+ self.assertRaises(AssertionError, self.b.load_drunk_sum)
+ self.assertRaises(AssertionError, self.b.load_drunk_sum, ["espresso"])
+ self.assertRaises(
+ AssertionError,
+ self.b.load_drunk_sum,
+ ["espresso", "2010-10-20"])
+ self.assertRaises(
+ AssertionError,
+ self.b.load_drunk_sum,
+ ["espresso", "lungo", "2010-10-20", "2020-10-20"])
+ self.assertRaises(AssertionError, self.b.load_drunk_list)
+ self.assertRaises(AssertionError, self.b.load_drunk_list, ["espresso"])
+ self.assertRaises(
+ AssertionError,
+ self.b.load_drunk_list,
+ ["espresso", "2010-10-20"])
+ self.assertRaises(
+ AssertionError,
+ self.b.load_drunk_list,
+ ["espresso", "lungo", "2010-10-20", "2020-10-20"])