annotate test_data/getan_test_data.py @ 501:f5e1a78173cb

Old databases can now be read in. Added comments.
author Magnus Schieder <mschieder@intevation.de>
date Tue, 18 Sep 2018 12:13:51 +0200
parents 199b3e3657aa
children
rev   line source
442
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
1 #!/usr/bin/env python3
454
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
2 """ Create test data for getan (getan_test_data.db).
450
45b7b83efaed Prepares for release 2.2.
Magnus Schieder <mschieder@intevation.de>
parents: 442
diff changeset
3
454
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
4 Please delete existing getan_test_data.db.
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
5 Execute getan_test_data.py to get the test database getan_test_data.db.
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
6 Open getan with getan_test_data.db: getan /path/getan_test_data.db
450
45b7b83efaed Prepares for release 2.2.
Magnus Schieder <mschieder@intevation.de>
parents: 442
diff changeset
7
454
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
8 (c) 2018 Intevation GmbH
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
9 Author: Magnus Schieder <magnus.schieder@intevation.de>
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
10
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
11 This is Free Software licensed under the terms of GPLv3 or later.
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
12 For details see LICENSE coming with the source of 'getan'.
450
45b7b83efaed Prepares for release 2.2.
Magnus Schieder <mschieder@intevation.de>
parents: 442
diff changeset
13 """
442
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
14 import sqlite3
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
15
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
16
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
17 def main():
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
18
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
19 conn = sqlite3.connect("getan_test_data.db")
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
20
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
21 db = conn.cursor()
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
22
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
23 # create getan schema.
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
24 db.execute('''CREATE TABLE projects (
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
25 id INTEGER PRIMARY KEY AUTOINCREMENT,
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
26 key VARCHAR(16) NOT NULL CONSTRAINT unique_key UNIQUE,
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
27 description VARCHAR(256),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
28 active BOOLEAN DEFAULT 1)
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
29 ''')
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
30
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
31 db.execute('''CREATE TABLE entries (
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
32 id INTEGER PRIMARY KEY AUTOINCREMENT,
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
33 project_id INTEGER REFERENCES projects(id),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
34 start_time TIMESTAMP NOT NULL,
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
35 stop_time TIMESTAMP NOT NULL,
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
36 description VARCHAR(256),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
37
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
38 CHECK (strftime('%s', start_time) <= strftime('%s', stop_time)))
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
39 ''')
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
40
499
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
41 db.execute('''CREATE TABLE recover (
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
42 id INTEGER PRIMARY KEY,
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
43 project_id INTEGER REFERENCES projects(id),
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
44 start_time TIMESTAMP NOT NULL,
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
45 stop_time TIMESTAMP NOT NULL,
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
46 description VARCHAR(256),
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
47
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
48 CHECK (strftime('%s', start_time) <= strftime('%s', stop_time)))
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
49 ''')
199b3e3657aa Every minute the time of the current entry is saved.
Magnus Schieder <mschieder@intevation.de>
parents: 454
diff changeset
50
442
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
51 # List of projects.
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
52 # (key, 'description')
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
53 pro = [
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
54 (1, 'pro1'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
55 (2, 'pro2'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
56 (3, 'pro3'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
57 ]
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
58
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
59 # List of entries with test data.
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
60 # (project_id, 'start_time', 'stop_time', 'description')
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
61 ent = [
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
62 (2, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent9'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
63 (2, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent8'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
64 (2, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent7'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
65 (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent6'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
66 (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent5'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
67 (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent4'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
68 (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent3'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
69 (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent2'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
70 (1, '2018-01-01 01:01:01.0', '2018-01-01 02:01:01.0', 'ent1'),
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
71 ]
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
72
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
73 db.executemany("INSERT INTO projects(key, description) VALUES (?,?)", pro)
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
74
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
75 db.executemany('''INSERT INTO entries(project_id, start_time, stop_time,
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
76 description) VALUES (?,?,?,?)''', ent)
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
77
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
78 conn.commit()
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
79 conn.close()
450
45b7b83efaed Prepares for release 2.2.
Magnus Schieder <mschieder@intevation.de>
parents: 442
diff changeset
80 print("getan_test_data.db was created.")
442
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
81
454
a4f04440f045 Improves coding style and phrasing.
Bernhard Reiter <bernhard@intevation.de>
parents: 453
diff changeset
82
442
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
83 if __name__ == '__main__':
7125e67d5acb dd getan testdata, add multi-selection Bug report.
Magnus Schieder <mschieder@intevation.de>
parents:
diff changeset
84 main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)