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 TopMateDrinkers(TestCase):
26 def test_top_mate_drinkers(self):
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)
34 def test_get_hero_comment(self):
36 self.assertNotEqual(g.getHeroComment(), "")
38 def test_get_some_smile(self):
40 self.assertNotEqual(g.getSomeSmile(), "")
41 self.assertEqual(g.getSomeSmile()[0], ":")
42 self.assertEqual(g.getSomeSmile()[-1], ":")
44 class TopTeaDrinkers(TestCase):
46 self.g = CoffeebotGetter()
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)
55 class EqualDrinkers(TestCase):
57 ("tester", 4*0.5 + 4*0.33),
61 def test_strict_drinkers_order(self):
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)
70 def test_equal_drinkers(self):
73 g.computeEqualDrinkers()
77 self.assertEqual(cc, c)
79 def test_equal_drinkers_len(self):
82 g.computeEqualDrinkers()
83 self.assertEqual(len(g.topeq), 2)
85 class DrunkSum(TestCase):
86 def test_nof_args(self):
88 self.assertRaises(ArgCountError, g.loadDrunkSum)
89 self.assertRaises(ArgCountError, g.loadDrunkSum, ["espresso"])
93 ["espresso", "2010-10-20"]
98 ["espresso", "lungo", "2010-10-20", "2020-10-20"]
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"])
109 ["espresso", "2010-10-20"]
114 ["espresso", "lungo", "2010-10-20", "2020-10-20"]