]> 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."""
 # -*- 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 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"
 
 
 TESTDB_FILENAME = ".tmptest.db"
 
@@ -160,3 +161,72 @@ class TopMateDrinkers(TestCase):
             top,
             topsorted
         )
             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
 """Test Coffeebot Getter."""
 from requests import Response
 from unittest import TestCase
+from cbdb import ArgCountError
 from cbgetter import CoffeebotGetter
 
 class SuccessInit(TestCase):
 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)
         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"]
+        )