]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/blob - ut/test_getter.py
Fix top tea drinkers msg format
[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 TopDrinks(TestCase):
26     def setUp(self):
27         self.g = CoffeebotGetter()
28
29     def test_top_drinks(self):
30         top = self.g.load_top_drinks()
31         self.assertIsNotNone(self.g.top)
32         self.assertTrue(len(self.g.top) >= 0)
33         self.assertNotEqual(self.g.msg, "")
34         self.assertTrue(len(self.g.msg) >= 0)
35
36 class TopMateDrinkers(TestCase):
37     def test_top_mate_drinkers(self):
38         g = CoffeebotGetter()
39         g.loadTopMateDrinkers()
40         self.assertIsNotNone(g.top)
41         self.assertTrue(len(g.top) >= 0)
42         self.assertNotEqual(g.msg, "")
43         self.assertTrue(len(g.msg) >= 0)
44
45     def test_get_hero_comment(self):
46         g = CoffeebotGetter()
47         self.assertNotEqual(g.getHeroComment(), "")
48
49     def test_get_some_smile(self):
50         g = CoffeebotGetter()
51         self.assertNotEqual(g.getSomeSmile(), "")
52         self.assertEqual(g.getSomeSmile()[0], ":")
53         self.assertEqual(g.getSomeSmile()[-1], ":")
54
55 class TopTeaDrinkers(TestCase):
56     def setUp(self):
57         self.g = CoffeebotGetter()
58
59     def test_top_tea_drinkers(self):
60         top = self.g.load_top_tea_drinkers()
61         self.assertIsNotNone(self.g.top)
62         self.assertTrue(len(self.g.top) >= 0)
63         self.assertNotEqual(self.g.msg, "")
64         self.assertTrue(len(self.g.msg) >= 0)
65
66 class EqualDrinkers(TestCase):
67     TOP = [
68         ("tester", 4*0.5 + 4*0.33),
69         ("newer", 2*0.33),
70         ("clone", 2*0.33),
71     ]
72     def test_strict_drinkers_order(self):
73         g = CoffeebotGetter()
74         g.top = self.TOP
75         g.computeEqualDrinkers()
76         for i in range(len(g.topeq) - 1):
77             for (un1, c1) in g.topeq[i]:
78                 for (un2, c2) in g.topeq[i + 1]:
79                     self.assertTrue(c1 > c2)
80
81     def test_equal_drinkers(self):
82         g = CoffeebotGetter()
83         g.top = self.TOP
84         g.computeEqualDrinkers()
85         for l in g.topeq:
86             cc = l[0][1]
87             for (un, c) in l:
88                self.assertEqual(cc, c)
89
90     def test_equal_drinkers_len(self):
91         g = CoffeebotGetter()
92         g.top = self.TOP
93         g.computeEqualDrinkers()
94         self.assertEqual(len(g.topeq), 2)
95
96 class DrunkSum(TestCase):
97     def test_nof_args(self):
98         g = CoffeebotGetter()
99         self.assertRaises(ArgCountError, g.loadDrunkSum)
100         self.assertRaises(ArgCountError, g.loadDrunkSum, ["espresso"])
101         self.assertRaises(
102             ArgCountError,
103             g.loadDrunkSum,
104             ["espresso", "2010-10-20"]
105         )
106         self.assertRaises(
107             ArgCountError,
108             g.loadDrunkSum,
109             ["espresso", "lungo", "2010-10-20", "2020-10-20"]
110         )
111
112 class DrunkList(TestCase):
113     def test_nof_args(self):
114         g = CoffeebotGetter()
115         self.assertRaises(ArgCountError, g.loadDrunkList)
116         self.assertRaises(ArgCountError, g.loadDrunkList, ["espresso"])
117         self.assertRaises(
118             ArgCountError,
119             g.loadDrunkList,
120             ["espresso", "2010-10-20"]
121         )
122         self.assertRaises(
123             ArgCountError,
124             g.loadDrunkList,
125             ["espresso", "lungo", "2010-10-20", "2020-10-20"]
126         )