]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/blob - ut/test_bot.py
Merge branch 'refactor'
[hubacji1/coffee-getter.git] / ut / test_bot.py
1 from unittest import TestCase
2 from coffee_getter.bot import Bot
3 from ut.test_db import TESTDB_PATH, create_test_db, delete_test_db
4
5
6 class CoffeeGetterBotTests(TestCase):
7     TOP = (
8         ("tester", 4*0.5 + 4*0.33),
9         ("newer", 2*0.33),
10         ("clone", 2*0.33))
11
12     def setUp(self):
13         create_test_db(TESTDB_PATH)
14         self.b = Bot(TESTDB_PATH)
15
16     def tearDown(self):
17         delete_test_db(TESTDB_PATH)
18
19     def test_blank_bot(self):
20         assert self.b.db
21         assert self.b.msg == ""
22         assert self.b.get_msg() == ""
23         assert self.b.top == []
24
25     def test_text_related_methods(self):
26         self.assertRaises(ValueError, self.b.send_msg_to, "test")
27         assert self.b.get_hero_comment() != ""
28         assert self.b.get_some_smile()[0] == ":"
29         assert self.b.get_some_smile()[-1] == ":"
30
31     def test_tops(self):
32         self.b.load_top_drinks()
33         assert len(self.b.top) > 0
34         assert len(self.b.msg) > 0
35         self.b.load_top_mate_drinkers()
36         assert len(self.b.top) > 0
37         assert len(self.b.msg) > 0
38         self.b.load_top_tea_drinkers()
39         assert len(self.b.top) > 0
40         assert len(self.b.msg) > 0
41
42     def test_drink_smile(self):
43         smiles = {
44             "tea": ":tea:",
45             "espresso": ":coffee:",
46             "espresso lungo": ":owl:",
47             "cappuccino": ":flara:",
48             "latte macchiato": ":baby_bottle:",
49             "Club-Mate 0,5 l": ":club-mate:",
50             "Club-Mate 0,33 l": ":club-mate_cola:",
51         }
52         for (d, s) in smiles.items():
53             assert self.b.get_drink_smile(d) == s
54
55     def test_strict_drinkers_order(self):
56         self.b.top = self.TOP
57         self.b.compute_equal_drinkers()
58         for i in range(len(self.b.topeq) - 1):
59             for (un1, c1) in self.b.topeq[i]:
60                 for (un2, c2) in self.b.topeq[i + 1]:
61                     self.assertTrue(c1 > c2)
62
63     def test_equal_drinkers(self):
64         self.b.top = self.TOP
65         self.b.compute_equal_drinkers()
66         for i in self.b.topeq:
67             cc = i[0][1]
68             for (un, c) in i:
69                 assert cc == c
70
71     def test_equal_drinkers_len(self):
72         self.b.top = self.TOP
73         self.b.compute_equal_drinkers()
74         assert len(self.b.topeq) == 2
75
76     def test_nof_args(self):
77         self.assertRaises(AssertionError, self.b.load_drunk_sum)
78         self.assertRaises(AssertionError, self.b.load_drunk_sum, ["espresso"])
79         self.assertRaises(
80             AssertionError,
81             self.b.load_drunk_sum,
82             ["espresso", "2010-10-20"])
83         self.assertRaises(
84             AssertionError,
85             self.b.load_drunk_sum,
86             ["espresso", "lungo", "2010-10-20", "2020-10-20"])
87         self.assertRaises(AssertionError, self.b.load_drunk_list)
88         self.assertRaises(AssertionError, self.b.load_drunk_list, ["espresso"])
89         self.assertRaises(
90             AssertionError,
91             self.b.load_drunk_list,
92             ["espresso", "2010-10-20"])
93         self.assertRaises(
94             AssertionError,
95             self.b.load_drunk_list,
96             ["espresso", "lungo", "2010-10-20", "2020-10-20"])