]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/blobdiff - ut/test_bot.py
Merge branch 'refactor'
[hubacji1/coffee-getter.git] / ut / test_bot.py
diff --git a/ut/test_bot.py b/ut/test_bot.py
new file mode 100644 (file)
index 0000000..e86613a
--- /dev/null
@@ -0,0 +1,96 @@
+from unittest import TestCase
+from coffee_getter.bot import Bot
+from ut.test_db import TESTDB_PATH, create_test_db, delete_test_db
+
+
+class CoffeeGetterBotTests(TestCase):
+    TOP = (
+        ("tester", 4*0.5 + 4*0.33),
+        ("newer", 2*0.33),
+        ("clone", 2*0.33))
+
+    def setUp(self):
+        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 = {
+            "tea": ":tea:",
+            "espresso": ":coffee:",
+            "espresso lungo": ":owl:",
+            "cappuccino": ":flara:",
+            "latte macchiato": ":baby_bottle:",
+            "Club-Mate 0,5 l": ":club-mate:",
+            "Club-Mate 0,33 l": ":club-mate_cola:",
+        }
+        for (d, s) in smiles.items():
+            assert self.b.get_drink_smile(d) == s
+
+    def test_strict_drinkers_order(self):
+        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):
+        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):
+        self.b.top = self.TOP
+        self.b.compute_equal_drinkers()
+        assert len(self.b.topeq) == 2
+
+    def test_nof_args(self):
+        self.assertRaises(AssertionError, self.b.load_drunk_sum)
+        self.assertRaises(AssertionError, self.b.load_drunk_sum, ["espresso"])
+        self.assertRaises(
+            AssertionError,
+            self.b.load_drunk_sum,
+            ["espresso", "2010-10-20"])
+        self.assertRaises(
+            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(
+            AssertionError,
+            self.b.load_drunk_list,
+            ["espresso", "2010-10-20"])
+        self.assertRaises(
+            AssertionError,
+            self.b.load_drunk_list,
+            ["espresso", "lungo", "2010-10-20", "2020-10-20"])