]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/commitdiff
Add drunk sum UT
authorJiri Vlasak <hubacji1@fel.cvut.cz>
Thu, 28 Mar 2019 15:43:43 +0000 (16:43 +0100)
committerJiri Vlasak <hubacji1@fel.cvut.cz>
Thu, 28 Mar 2019 16:45:05 +0000 (17:45 +0100)
ut/test_db.py
ut/test_getter.py

index 32fd3f00213500a56acaf532afd4c16a650a12b0..ff1b65272c22117648b2a12c09a9a03cce22fad8 100644 (file)
@@ -1,10 +1,11 @@
 # -*- 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"
 
@@ -160,3 +161,72 @@ class TopMateDrinkers(TestCase):
             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"
+        )
index 7fe5d8eb3281d00840c4d22ef1f0da08d78f6b5c..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):
@@ -69,3 +70,19 @@ class EqualDrinkers(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"]
+        )