]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/commitdiff
Rework bot ut
authorJiri Vlasak <jiri.vlasak.2@cvut.cz>
Fri, 4 Nov 2022 15:00:26 +0000 (16:00 +0100)
committerJiri Vlasak <jiri.vlasak.2@cvut.cz>
Fri, 4 Nov 2022 15:02:06 +0000 (16:02 +0100)
ut/test_bot.py

index d8edf0d12be11322a8c5d8032375639788be959f..e86613a024dde71b4717d2238ddb75b2bd1b09ae 100644 (file)
@@ -1,37 +1,43 @@
-# -*- coding: utf-8 -*-
-"""Test Coffeebot Getter."""
-from requests import Response
 from unittest import TestCase
-from cbdb import ArgCountError
-from cbgetter import CoffeebotGetter
+from coffee_getter.bot import Bot
+from ut.test_db import TESTDB_PATH, create_test_db, delete_test_db
 
-class SuccessInit(TestCase):
-    def test_not_blank(self):
-        g = CoffeebotGetter()
-        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()
-        self.assertEqual(g.getMsg(), "")
-
-    def test_msg_sent_to_slack(self):
-        g = CoffeebotGetter()
-        r = g.sendMsgToSlack()
-        self.assertIsInstance(r, Response)
+class CoffeeGetterBotTests(TestCase):
+    TOP = (
+        ("tester", 4*0.5 + 4*0.33),
+        ("newer", 2*0.33),
+        ("clone", 2*0.33))
 
-class TopDrinks(TestCase):
     def setUp(self):
-        self.g = CoffeebotGetter()
-
-    def test_top_drinks(self):
-        top = self.g.load_top_drinks()
-        self.assertIsNotNone(self.g.top)
-        self.assertTrue(len(self.g.top) >= 0)
-        self.assertNotEqual(self.g.msg, "")
-        self.assertTrue(len(self.g.msg) >= 0)
+        create_test_db(TESTDB_PATH)
+        self.b = Bot(TESTDB_PATH)
+
+    def tearDown(self):
+        delete_test_db(TESTDB_PATH)
+
+    def test_blank_bot(self):
+        assert self.b.db
+        assert self.b.msg == ""
+        assert self.b.get_msg() == ""
+        assert self.b.top == []
+
+    def test_text_related_methods(self):
+        self.assertRaises(ValueError, self.b.send_msg_to, "test")
+        assert self.b.get_hero_comment() != ""
+        assert self.b.get_some_smile()[0] == ":"
+        assert self.b.get_some_smile()[-1] == ":"
+
+    def test_tops(self):
+        self.b.load_top_drinks()
+        assert len(self.b.top) > 0
+        assert len(self.b.msg) > 0
+        self.b.load_top_mate_drinkers()
+        assert len(self.b.top) > 0
+        assert len(self.b.msg) > 0
+        self.b.load_top_tea_drinkers()
+        assert len(self.b.top) > 0
+        assert len(self.b.msg) > 0
 
     def test_drink_smile(self):
         smiles = {
@@ -44,96 +50,47 @@ class TopDrinks(TestCase):
             "Club-Mate 0,33 l": ":club-mate_cola:",
         }
         for (d, s) in smiles.items():
-            assert self.g.get_drink_smile(d) == s
-
-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], ":")
+            assert self.b.get_drink_smile(d) == s
 
-class TopTeaDrinkers(TestCase):
-    def setUp(self):
-        self.g = CoffeebotGetter()
-
-    def test_top_tea_drinkers(self):
-        top = self.g.load_top_tea_drinkers()
-        self.assertIsNotNone(self.g.top)
-        self.assertTrue(len(self.g.top) >= 0)
-        self.assertNotEqual(self.g.msg, "")
-        self.assertTrue(len(self.g.msg) >= 0)
-
-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.b.top = self.TOP
+        self.b.compute_equal_drinkers()
+        for i in range(len(self.b.topeq) - 1):
+            for (un1, c1) in self.b.topeq[i]:
+                for (un2, c2) in self.b.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)
+        self.b.top = self.TOP
+        self.b.compute_equal_drinkers()
+        for i in self.b.topeq:
+            cc = i[0][1]
+            for (un, c) in i:
+                assert cc == c
 
     def test_equal_drinkers_len(self):
-        g = CoffeebotGetter()
-        g.top = self.TOP
-        g.computeEqualDrinkers()
-        self.assertEqual(len(g.topeq), 2)
+        self.b.top = self.TOP
+        self.b.compute_equal_drinkers()
+        assert len(self.b.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(AssertionError, self.b.load_drunk_sum)
+        self.assertRaises(AssertionError, self.b.load_drunk_sum, ["espresso"])
         self.assertRaises(
-            ArgCountError,
-            g.loadDrunkSum,
-            ["espresso", "2010-10-20"]
-        )
+            AssertionError,
+            self.b.load_drunk_sum,
+            ["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"])
+            AssertionError,
+            self.b.load_drunk_sum,
+            ["espresso", "lungo", "2010-10-20", "2020-10-20"])
+        self.assertRaises(AssertionError, self.b.load_drunk_list)
+        self.assertRaises(AssertionError, self.b.load_drunk_list, ["espresso"])
         self.assertRaises(
-            ArgCountError,
-            g.loadDrunkList,
-            ["espresso", "2010-10-20"]
-        )
+            AssertionError,
+            self.b.load_drunk_list,
+            ["espresso", "2010-10-20"])
         self.assertRaises(
-            ArgCountError,
-            g.loadDrunkList,
-            ["espresso", "lungo", "2010-10-20", "2020-10-20"]
-        )
+            AssertionError,
+            self.b.load_drunk_list,
+            ["espresso", "lungo", "2010-10-20", "2020-10-20"])