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
8 class SuccessInit(TestCase):
9 def test_not_blank(self):
11 self.assertIsNotNone(g.cfg)
12 self.assertIsNotNone(g.db)
13 self.assertEqual(g.msg, "")
14 self.assertEqual(g.top, [])
16 def test_msg_getter_is_blank_by_default(self):
18 self.assertEqual(g.getMsg(), "")
20 def test_msg_sent_to_slack(self):
22 r = g.sendMsgToSlack()
23 self.assertIsInstance(r, Response)
25 class TopDrinks(TestCase):
27 self.g = CoffeebotGetter()
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)
36 def test_drink_smile(self):
39 "espresso": ":coffee:",
40 "espresso lungo": ":coffin:",
41 "cappuccino": ":flara:",
42 "latte macchiato": ":baby_bottle:",
43 "Club-Mate 0,5 l": ":club-mate:",
44 "Club-Mate 0,33 l": ":club-mate_cola:",
46 for (d, s) in smiles.items():
47 assert self.g.get_drink_smile(d) == s
49 class TopMateDrinkers(TestCase):
50 def test_top_mate_drinkers(self):
52 g.loadTopMateDrinkers()
53 self.assertIsNotNone(g.top)
54 self.assertTrue(len(g.top) >= 0)
55 self.assertNotEqual(g.msg, "")
56 self.assertTrue(len(g.msg) >= 0)
58 def test_get_hero_comment(self):
60 self.assertNotEqual(g.getHeroComment(), "")
62 def test_get_some_smile(self):
64 self.assertNotEqual(g.getSomeSmile(), "")
65 self.assertEqual(g.getSomeSmile()[0], ":")
66 self.assertEqual(g.getSomeSmile()[-1], ":")
68 class TopTeaDrinkers(TestCase):
70 self.g = CoffeebotGetter()
72 def test_top_tea_drinkers(self):
73 top = self.g.load_top_tea_drinkers()
74 self.assertIsNotNone(self.g.top)
75 self.assertTrue(len(self.g.top) >= 0)
76 self.assertNotEqual(self.g.msg, "")
77 self.assertTrue(len(self.g.msg) >= 0)
79 class EqualDrinkers(TestCase):
81 ("tester", 4*0.5 + 4*0.33),
85 def test_strict_drinkers_order(self):
88 g.computeEqualDrinkers()
89 for i in range(len(g.topeq) - 1):
90 for (un1, c1) in g.topeq[i]:
91 for (un2, c2) in g.topeq[i + 1]:
92 self.assertTrue(c1 > c2)
94 def test_equal_drinkers(self):
97 g.computeEqualDrinkers()
101 self.assertEqual(cc, c)
103 def test_equal_drinkers_len(self):
104 g = CoffeebotGetter()
106 g.computeEqualDrinkers()
107 self.assertEqual(len(g.topeq), 2)
109 class DrunkSum(TestCase):
110 def test_nof_args(self):
111 g = CoffeebotGetter()
112 self.assertRaises(ArgCountError, g.loadDrunkSum)
113 self.assertRaises(ArgCountError, g.loadDrunkSum, ["espresso"])
117 ["espresso", "2010-10-20"]
122 ["espresso", "lungo", "2010-10-20", "2020-10-20"]
125 class DrunkList(TestCase):
126 def test_nof_args(self):
127 g = CoffeebotGetter()
128 self.assertRaises(ArgCountError, g.loadDrunkList)
129 self.assertRaises(ArgCountError, g.loadDrunkList, ["espresso"])
133 ["espresso", "2010-10-20"]
138 ["espresso", "lungo", "2010-10-20", "2020-10-20"]