# -*- coding: utf-8 -*-
"""Test database access."""
+from datetime import datetime, timedelta
from os import path, remove
from sqlite3 import connect
from unittest import TestCase
from cbconf import Conf
-from cbdb import Db, FileNotSetError
+from cbdb import ArgCountError, Db, FileNotSetError
TESTDB_FILENAME = ".tmptest.db"
top,
topsorted
)
+
+class DrunkSum(TestCase):
+ tdy = datetime.now()
+ tdy += timedelta(days=1)
+ tdystr = tdy.strftime("%Y-%m-%d")
+ lw = tdy - timedelta(days=8)
+ lwstr = lw.strftime("%Y-%m-%d")
+
+ def test_espresso_sum(self):
+ create_test_db(TESTDB_FILENAME)
+ try:
+ db = Db(TESTDB_FILENAME)
+ drunk = db.getDrunkSum("espresso", self.lwstr, self.tdystr)
+ self.assertEqual(drunk, [])
+ finally:
+ delete_test_db(TESTDB_FILENAME)
+
+ def test_espressolungo_sum(self):
+ create_test_db(TESTDB_FILENAME)
+ try:
+ db = Db(TESTDB_FILENAME)
+ drunk = db.getDrunkSum("espresso lungo", self.lwstr, self.tdystr)
+ self.assertEqual(drunk, [
+ ("tester", 4),
+ ("newer", 2),
+ ("clone", 2),
+ ])
+ finally:
+ delete_test_db(TESTDB_FILENAME)
+
+ def test_mate_3_sum(self):
+ create_test_db(TESTDB_FILENAME)
+ try:
+ db = Db(TESTDB_FILENAME)
+ drunk = db.getDrunkSum("Club-Mate 0,33 l", self.lwstr, self.tdystr)
+ self.assertEqual(drunk, [
+ ("tester", 4),
+ ("newer", 2),
+ ("clone", 2),
+ ])
+ finally:
+ delete_test_db(TESTDB_FILENAME)
+
+ def test_mate_5_sum(self):
+ create_test_db(TESTDB_FILENAME)
+ try:
+ db = Db(TESTDB_FILENAME)
+ drunk = db.getDrunkSum("Club-Mate 0,5 l", self.lwstr, self.tdystr)
+ self.assertEqual(drunk, [
+ ("tester", 4),
+ ])
+ finally:
+ delete_test_db(TESTDB_FILENAME)
+
+ def test_nof_args(self):
+ cfg = Conf()
+ db = Db(cfg.getCoffeeDbPath())
+ self.assertRaises(ArgCountError, db.getDrunkSum)
+ self.assertRaises(ArgCountError, db.getDrunkSum, "espresso")
+ self.assertRaises(
+ ArgCountError,
+ db.getDrunkSum,
+ "espresso", "2010-10-20"
+ )
+ self.assertRaises(
+ ArgCountError,
+ db.getDrunkSum,
+ "espresso", "lungo", "2010-10-20", "2020-10-20"
+ )
"""Test Coffeebot Getter."""
from requests import Response
from unittest import TestCase
+from cbdb import ArgCountError
from cbgetter import CoffeebotGetter
class SuccessInit(TestCase):
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"]
+ )