]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/blobdiff - README.md
Add test cases for equal drinkers
[hubacji1/coffee-getter.git] / README.md
index a6bf09d2cb8880ccdc09157587fa052824d0638b..0dd542104d1fcff55fd5dd0caeffc89d68748c2c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,6 +1,60 @@
 # Coffeebot getter
 Somehow friendly API to get and share coffee related data from database.
 
+# Development
+## Database and Getter
+`cbdb` module is used as interface to database. When getting data from
+database, add methods here.
+
+Data got from database are processed in `cbgetter` module. Feel free to add
+formatting methods here. Also communication to slack is handled in this module.
+
+## Runnables
+Scripts to be run by systemd timers should by as simple as possible, runnable,
+python3 script file.
+
+There are no tests needed for runnables.
+
+## Timers
+For running tasks periodically, please see [Timers][6] and [User][7] pages
+about systemd on archlinux wiki.
+
+The example `top5_mate_stats.service`:
+```
+[Unit]
+Description=Run top 5 Mate drinkers stats
+
+[Service]
+Environment=PYTHONPATH=/path/to/coffee-getter
+ExecStart=/path/to/coffee-getter/run/top5_mate_stats.py
+```
+
+The example `top5_mate_stats.timer`:
+```
+[Unit]
+Description=Run top 5 Mate drinkers stats each Mon 9am
+
+[Timer]
+OnCalendar=Mon *-*-* 09:00:00
+Persistent=true
+
+[Install]
+WantedBy=timers.target
+```
+
+Both files must be stored in `~/.config/systemd/user/` directory.
+
+Then enable timer and service by:
+```
+systemctl --user enable top5_mate_stats.timer
+systemctl --user enable top5_mate_stats.service
+```
+
+And start timer by:
+```
+systemctl --user start top5_mate_stats.timer
+```
+
 # Contribute
 ## Code
 For quick orientation see the [changelog][1].
@@ -9,6 +63,30 @@ Please, think about [The seven rules of a great Git commit message][2] when
 making commit. The project use [OneFlow][3] branching model with the `master`
 branch as the branch where the development happens.
 
+## TDD
+Test Driven Development (TDD) is used in this project. Each *feature* **must**
+start with adding test and all the tests **must** pass before merge to the
+*master*.
+
+Run the tests by:
+```
+python3 -m unittest discover ut/
+```
+
+See [unittest][5] for start.
+
+## Database
+By default, sqlite3 `coffee.db` file is needed. You may create testing copy of
+database by:
+```
+python3 -c '
+from ut.test_db import create_test_db
+create_test_db("coffee.db")
+'
+```
+
+Database is needed to pass the tests.
+
 ## License
 This project is developed under [GNU GPLv3 license][4].
 
@@ -16,4 +94,6 @@ This project is developed under [GNU GPLv3 license][4].
 [2]: https://chris.beams.io/posts/git-commit/
 [3]: http://endoflineblog.com/oneflow-a-git-branching-model-and-workflow
 [4]: ./LICENSE
-
+[5]: https://docs.python.org/3.5/library/unittest.html
+[6]: https://wiki.archlinux.org/index.php/Systemd/Timers
+[7]: https://wiki.archlinux.org/index.php/Systemd/User