"""Test Coffeebot Getter."""
from requests import Response
from unittest import TestCase
+from cbdb import ArgCountError
from cbgetter import CoffeebotGetter
class SuccessInit(TestCase):
self.assertIsNotNone(g.cfg)
self.assertIsNotNone(g.db)
self.assertEqual(g.msg, "")
+ self.assertEqual(g.top, [])
def test_msg_getter_is_blank_by_default(self):
g = CoffeebotGetter()
g = CoffeebotGetter()
r = g.sendMsgToSlack()
self.assertIsInstance(r, Response)
+
+class TopMateDrinkers(TestCase):
+ def test_top_mate_drinkers(self):
+ g = CoffeebotGetter()
+ g.loadTopMateDrinkers()
+ self.assertIsNotNone(g.top)
+ self.assertTrue(len(g.top) >= 0)
+ self.assertNotEqual(g.msg, "")
+ self.assertTrue(len(g.msg) >= 0)
+
+ def test_get_hero_comment(self):
+ g = CoffeebotGetter()
+ self.assertNotEqual(g.getHeroComment(), "")
+
+ def test_get_some_smile(self):
+ g = CoffeebotGetter()
+ self.assertNotEqual(g.getSomeSmile(), "")
+ self.assertEqual(g.getSomeSmile()[0], ":")
+ self.assertEqual(g.getSomeSmile()[-1], ":")
+
+class EqualDrinkers(TestCase):
+ TOP = [
+ ("tester", 4*0.5 + 4*0.33),
+ ("newer", 2*0.33),
+ ("clone", 2*0.33),
+ ]
+ def test_strict_drinkers_order(self):
+ g = CoffeebotGetter()
+ g.top = self.TOP
+ g.computeEqualDrinkers()
+ for i in range(len(g.topeq) - 1):
+ for (un1, c1) in g.topeq[i]:
+ for (un2, c2) in g.topeq[i + 1]:
+ self.assertTrue(c1 > c2)
+
+ def test_equal_drinkers(self):
+ g = CoffeebotGetter()
+ g.top = self.TOP
+ g.computeEqualDrinkers()
+ for l in g.topeq:
+ cc = l[0][1]
+ for (un, c) in l:
+ self.assertEqual(cc, c)
+
+ def test_equal_drinkers_len(self):
+ g = CoffeebotGetter()
+ g.top = self.TOP
+ g.computeEqualDrinkers()
+ self.assertEqual(len(g.topeq), 2)
+
+class DrunkSum(TestCase):
+ def test_nof_args(self):
+ g = CoffeebotGetter()
+ self.assertRaises(ArgCountError, g.loadDrunkSum)
+ self.assertRaises(ArgCountError, g.loadDrunkSum, ["espresso"])
+ self.assertRaises(
+ ArgCountError,
+ g.loadDrunkSum,
+ ["espresso", "2010-10-20"]
+ )
+ self.assertRaises(
+ ArgCountError,
+ g.loadDrunkSum,
+ ["espresso", "lungo", "2010-10-20", "2020-10-20"]
+ )
+
+class DrunkList(TestCase):
+ def test_nof_args(self):
+ g = CoffeebotGetter()
+ self.assertRaises(ArgCountError, g.loadDrunkList)
+ self.assertRaises(ArgCountError, g.loadDrunkList, ["espresso"])
+ self.assertRaises(
+ ArgCountError,
+ g.loadDrunkList,
+ ["espresso", "2010-10-20"]
+ )
+ self.assertRaises(
+ ArgCountError,
+ g.loadDrunkList,
+ ["espresso", "lungo", "2010-10-20", "2020-10-20"]
+ )