]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/blob - ut/test_getter.py
04f1ee1b2687d94c49165ce5bb0081136fb175c3
[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 TopTeaDrinkers(TestCase):
45     def setUp(self):
46         self.g = CoffeebotGetter()
47
48     def test_top_tea_drinkers(self):
49         top = self.g.load_top_tea_drinkers()
50         self.assertIsNotNone(self.g.top)
51         self.assertTrue(len(self.g.top) >= 0)
52         self.assertNotEqual(self.g.msg, "")
53         self.assertTrue(len(self.g.msg) >= 0)
54
55 class EqualDrinkers(TestCase):
56     TOP = [
57         ("tester", 4*0.5 + 4*0.33),
58         ("newer", 2*0.33),
59         ("clone", 2*0.33),
60     ]
61     def test_strict_drinkers_order(self):
62         g = CoffeebotGetter()
63         g.top = self.TOP
64         g.computeEqualDrinkers()
65         for i in range(len(g.topeq) - 1):
66             for (un1, c1) in g.topeq[i]:
67                 for (un2, c2) in g.topeq[i + 1]:
68                     self.assertTrue(c1 > c2)
69
70     def test_equal_drinkers(self):
71         g = CoffeebotGetter()
72         g.top = self.TOP
73         g.computeEqualDrinkers()
74         for l in g.topeq:
75             cc = l[0][1]
76             for (un, c) in l:
77                self.assertEqual(cc, c)
78
79     def test_equal_drinkers_len(self):
80         g = CoffeebotGetter()
81         g.top = self.TOP
82         g.computeEqualDrinkers()
83         self.assertEqual(len(g.topeq), 2)
84
85 class DrunkSum(TestCase):
86     def test_nof_args(self):
87         g = CoffeebotGetter()
88         self.assertRaises(ArgCountError, g.loadDrunkSum)
89         self.assertRaises(ArgCountError, g.loadDrunkSum, ["espresso"])
90         self.assertRaises(
91             ArgCountError,
92             g.loadDrunkSum,
93             ["espresso", "2010-10-20"]
94         )
95         self.assertRaises(
96             ArgCountError,
97             g.loadDrunkSum,
98             ["espresso", "lungo", "2010-10-20", "2020-10-20"]
99         )
100
101 class DrunkList(TestCase):
102     def test_nof_args(self):
103         g = CoffeebotGetter()
104         self.assertRaises(ArgCountError, g.loadDrunkList)
105         self.assertRaises(ArgCountError, g.loadDrunkList, ["espresso"])
106         self.assertRaises(
107             ArgCountError,
108             g.loadDrunkList,
109             ["espresso", "2010-10-20"]
110         )
111         self.assertRaises(
112             ArgCountError,
113             g.loadDrunkList,
114             ["espresso", "lungo", "2010-10-20", "2020-10-20"]
115         )