]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/blobdiff - ut/test_getter.py
Add drunk sum UT
[hubacji1/coffee-getter.git] / ut / test_getter.py
index 68a746df04603677f32769a2f61ba1a3be2255f8..1d61f7d5193a9710e293ec27fb030a5295abb1c0 100644 (file)
@@ -2,6 +2,7 @@
 """Test Coffeebot Getter."""
 from requests import Response
 from unittest import TestCase
+from cbdb import ArgCountError
 from cbgetter import CoffeebotGetter
 
 class SuccessInit(TestCase):
@@ -10,6 +11,7 @@ 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()
@@ -19,3 +21,68 @@ class SuccessInit(TestCase):
         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"]
+        )