-# -*- 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 = {
"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"])