See [unittest][5] for start.
## Database
-By default, sqlite3 `coffee.db` file is needed. Please, see [coffee_db.sql][6]
-for the database format. You may create testing copy of database by:
+By default, sqlite3 `coffee.db` file is needed. You may create testing copy of
+database by:
```
-wget http://rtime.felk.cvut.cz/gitweb/coffee/coffee-flask.git/blob_plain/refs/heads/master:/coffee_db.sql
-sqlite3 coffee.db < coffee_db.sql
-```
-
-Then add some testing data by:
-```
-sqlite3 coffee.db "INSERT INTO "users" VALUES('1111','tester')"
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'espresso lungo')"
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'Club-Mate 0,5 l')"
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'Club-Mate 0,33 l')"
-sleep 1
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'espresso lungo')"
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'Club-Mate 0,5 l')"
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'Club-Mate 0,33 l')"
-sleep 1
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'espresso lungo')"
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'Club-Mate 0,5 l')"
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'Club-Mate 0,33 l')"
-sleep 1
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'espresso lungo')"
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'Club-Mate 0,5 l')"
-sqlite3 coffee.db "insert into coffees (id, flavor) values ('1111', 'Club-Mate 0,33 l')"
+python3 -c '
+from ut.test_db import create_test_db
+create_test_db("coffee.db")
+'
```
Database is needed to pass the tests.
[3]: http://endoflineblog.com/oneflow-a-git-branching-model-and-workflow
[4]: ./LICENSE
[5]: https://docs.python.org/3.5/library/unittest.html
-[6]: http://rtime.felk.cvut.cz/gitweb/coffee/coffee-flask.git/blob/refs/heads/master:/coffee_db.sql
# -*- coding: utf-8 -*-
"""Test database access."""
-from os import remove
+from os import path, remove
from sqlite3 import connect
from unittest import TestCase
+from cbconf import Conf
from cbdb import Db
TESTDB_FILENAME = ".tmptest.db"
-def create_test_db():
- con = connect(TESTDB_FILENAME)
+def create_test_db(fn):
+ con = connect(fn)
cur = con.cursor()
cur.executescript("""
pragma foreign_keys = ON;
;
""")
cur.executescript("""
-INSERT INTO "users" VALUES('1111','tester');
-INSERT INTO "coffees" VALUES(1,'1111','espresso lungo','2019-03-20 11:22:43');
-INSERT INTO "coffees" VALUES(2,'1111','Club-Mate 0,5 l','2019-03-20 11:22:43');
-INSERT INTO "coffees" VALUES(3,'1111','Club-Mate 0,33 l','2019-03-20 11:22:43');
-INSERT INTO "coffees" VALUES(4,'1111','espresso lungo','2019-03-20 11:22:44');
-INSERT INTO "coffees" VALUES(5,'1111','Club-Mate 0,5 l','2019-03-20 11:22:44');
-INSERT INTO "coffees" VALUES(6,'1111','Club-Mate 0,33 l','2019-03-20 11:22:44');
-INSERT INTO "coffees" VALUES(7,'1111','espresso lungo','2019-03-20 11:22:45');
-INSERT INTO "coffees" VALUES(8,'1111','Club-Mate 0,5 l','2019-03-20 11:22:45');
-INSERT INTO "coffees" VALUES(9,'1111','Club-Mate 0,33 l','2019-03-20 11:22:45');
-INSERT INTO "coffees" VALUES(10,'1111','espresso lungo','2019-03-20 11:22:46');
-INSERT INTO "coffees" VALUES(11,'1111','Club-Mate 0,5 l','2019-03-20 11:22:46');
-INSERT INTO "coffees" VALUES(12,'1111','Club-Mate 0,33 l','2019-03-20 11:22:46');
+INSERT INTO users VALUES('1111','tester');
+INSERT INTO coffees VALUES(1,'1111','espresso lungo','2019-03-20 11:22:43');
+INSERT INTO coffees VALUES(2,'1111','Club-Mate 0,5 l','2019-03-20 11:22:43');
+INSERT INTO coffees VALUES(3,'1111','Club-Mate 0,33 l','2019-03-20 11:22:43');
+INSERT INTO coffees VALUES(4,'1111','espresso lungo','2019-03-20 11:22:44');
+INSERT INTO coffees VALUES(5,'1111','Club-Mate 0,5 l','2019-03-20 11:22:44');
+INSERT INTO coffees VALUES(6,'1111','Club-Mate 0,33 l','2019-03-20 11:22:44');
+INSERT INTO coffees VALUES(7,'1111','espresso lungo','2019-03-20 11:22:45');
+INSERT INTO coffees VALUES(8,'1111','Club-Mate 0,5 l','2019-03-20 11:22:45');
+INSERT INTO coffees VALUES(9,'1111','Club-Mate 0,33 l','2019-03-20 11:22:45');
+INSERT INTO coffees VALUES(10,'1111','espresso lungo','2019-03-20 11:22:46');
+INSERT INTO coffees VALUES(11,'1111','Club-Mate 0,5 l','2019-03-20 11:22:46');
+INSERT INTO coffees VALUES(12,'1111','Club-Mate 0,33 l','2019-03-20 11:22:46');
""")
con.close()
-def delete_test_db():
- remove(TESTDB_FILENAME)
+def delete_test_db(fn):
+ remove(fn)
class CoffeesTable(TestCase):
def test_db_exists(self):
+ cfg = Conf()
+ self.assertTrue(path.isfile(cfg.getCoffeeDbPath()))
db = Db()
self.assertIsNotNone(db.con)
self.assertIsNotNone(db.cur)
def test_test_db_exists(self):
- create_test_db()
+ create_test_db(TESTDB_FILENAME)
try:
db = Db(TESTDB_FILENAME)
self.assertIsNotNone(db.con)
self.assertIsNotNone(db.cur)
finally:
- delete_test_db()
+ delete_test_db(TESTDB_FILENAME)