]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/blob - ut/test_getter.py
0324dabfcd39648f36e2b8a6a7371a3ed7c051a1
[hubacji1/coffee-getter.git] / ut / test_getter.py
1 # -*- coding: utf-8 -*-
2 """Test Coffeebot Getter."""
3 from requests import Response
4 from unittest import TestCase
5 from cbdb import ArgCountError
6 from cbgetter import CoffeebotGetter
7
8 class SuccessInit(TestCase):
9     def test_not_blank(self):
10         g = CoffeebotGetter()
11         self.assertIsNotNone(g.cfg)
12         self.assertIsNotNone(g.db)
13         self.assertEqual(g.msg, "")
14         self.assertEqual(g.top, [])
15
16     def test_msg_getter_is_blank_by_default(self):
17         g = CoffeebotGetter()
18         self.assertEqual(g.getMsg(), "")
19
20     def test_msg_sent_to_slack(self):
21         g = CoffeebotGetter()
22         r = g.sendMsgToSlack()
23         self.assertIsInstance(r, Response)
24
25 class TopMateDrinkers(TestCase):
26     def test_top_mate_drinkers(self):
27         g = CoffeebotGetter()
28         g.loadTopMateDrinkers()
29         self.assertIsNotNone(g.top)
30         self.assertTrue(len(g.top) >= 0)
31         self.assertNotEqual(g.msg, "")
32         self.assertTrue(len(g.msg) >= 0)
33
34     def test_get_hero_comment(self):
35         g = CoffeebotGetter()
36         self.assertNotEqual(g.getHeroComment(), "")
37
38     def test_get_some_smile(self):
39         g = CoffeebotGetter()
40         self.assertNotEqual(g.getSomeSmile(), "")
41         self.assertEqual(g.getSomeSmile()[0], ":")
42         self.assertEqual(g.getSomeSmile()[-1], ":")
43
44 class EqualDrinkers(TestCase):
45     TOP = [
46         ("tester", 4*0.5 + 4*0.33),
47         ("newer", 2*0.33),
48         ("clone", 2*0.33),
49     ]
50     def test_strict_drinkers_order(self):
51         g = CoffeebotGetter()
52         g.top = self.TOP
53         g.computeEqualDrinkers()
54         for i in range(len(g.topeq) - 1):
55             for (un1, c1) in g.topeq[i]:
56                 for (un2, c2) in g.topeq[i + 1]:
57                     self.assertTrue(c1 > c2)
58
59     def test_equal_drinkers(self):
60         g = CoffeebotGetter()
61         g.top = self.TOP
62         g.computeEqualDrinkers()
63         for l in g.topeq:
64             cc = l[0][1]
65             for (un, c) in l:
66                self.assertEqual(cc, c)
67
68     def test_equal_drinkers_len(self):
69         g = CoffeebotGetter()
70         g.top = self.TOP
71         g.computeEqualDrinkers()
72         self.assertEqual(len(g.topeq), 2)
73
74 class DrunkSum(TestCase):
75     def test_nof_args(self):
76         g = CoffeebotGetter()
77         self.assertRaises(ArgCountError, g.loadDrunkSum)
78         self.assertRaises(ArgCountError, g.loadDrunkSum, ["espresso"])
79         self.assertRaises(
80             ArgCountError,
81             g.loadDrunkSum,
82             ["espresso", "2010-10-20"]
83         )
84         self.assertRaises(
85             ArgCountError,
86             g.loadDrunkSum,
87             ["espresso", "lungo", "2010-10-20", "2020-10-20"]
88         )
89
90 class DrunkList(TestCase):
91     def test_nof_args(self):
92         g = CoffeebotGetter()
93         self.assertRaises(ArgCountError, g.loadDrunkList)
94         self.assertRaises(ArgCountError, g.loadDrunkList, ["espresso"])
95         self.assertRaises(
96             ArgCountError,
97             g.loadDrunkList,
98             ["espresso", "2010-10-20"]
99         )
100         self.assertRaises(
101             ArgCountError,
102             g.loadDrunkList,
103             ["espresso", "lungo", "2010-10-20", "2020-10-20"]
104         )