Mercurial > getan
diff test_data/getan_test_data.py @ 442:7125e67d5acb
dd getan testdata, add multi-selection Bug report.
* add /test_data/getan_test_data.py to create a new getan database
with test data.
* update report 20170317 BER. Add a guide to recreating the bug.
* TDOD: Fix the bug.
author | Magnus Schieder <mschieder@intevation.de> |
---|---|
date | Thu, 18 Jan 2018 11:14:24 +0100 |
parents | |
children | 45b7b83efaed |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test_data/getan_test_data.py Thu Jan 18 11:14:24 2018 +0100 @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +# +# Author: Magnus Schieder <magnus.schieder@intevation.de> +# (c) 2018 Intevation GmbH +# +# Program to create test data for getan (getan_test_data.db). +# Please delete existing getan_test_data.db. +# Open getan with getan_test_data.db: getan /path/getan_test_data.db +# +# This is Free Software licensed under the terms of GPLv3 or later. +# For details see LICENSE coming with the source of 'getan'. +# + + +import sqlite3 + + +def main(): + + conn = sqlite3.connect("getan_test_data.db") + + db = conn.cursor() + + # create getan schema. + db.execute('''CREATE TABLE projects ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + key VARCHAR(16) NOT NULL CONSTRAINT unique_key UNIQUE, + description VARCHAR(256), + active BOOLEAN DEFAULT 1) + ''') + + db.execute('''CREATE TABLE entries ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + project_id INTEGER REFERENCES projects(id), + start_time TIMESTAMP NOT NULL, + stop_time TIMESTAMP NOT NULL, + description VARCHAR(256), + + CHECK (strftime('%s', start_time) <= strftime('%s', stop_time))) + ''') + + # List of projects. + # (key, 'description') + pro = [ + (1, 'pro1'), + (2, 'pro2'), + (3, 'pro3'), + ] + + # List of entries with test data. + # (project_id, 'start_time', 'stop_time', 'description') + ent = [ + (2, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent9'), + (2, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent8'), + (2, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent7'), + (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent6'), + (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent5'), + (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent4'), + (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent3'), + (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent2'), + (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent1'), + ] + + db.executemany("INSERT INTO projects(key, description) VALUES (?,?)", pro) + + db.executemany('''INSERT INTO entries(project_id, start_time, stop_time, + description) VALUES (?,?,?,?)''', ent) + + conn.commit() + conn.close() + +if __name__ == '__main__': + main()