3 from motion import init_db
4 from tests.test_basics import BasicTest
7 class DatabaseTests(BasicTest):
16 with self.open_DB() as db:
17 with app.open_resource('tests/sql/schema_test_v5.sql', mode='r') as f:
19 with app.open_resource('tests/sql/sample_data_test_v4.sql', mode='r') as f:
24 ver = db.prepare("SELECT version FROM schema_version")()[0][0]
25 self.assertGreaterEqual(ver,6)
29 host=app.config.get("DEFAULT_HOST")
30 aid=db.prepare("SELECT id FROM voter WHERE email=$1 AND host=$2")("User A", host)[0][0]
31 rn=db.prepare("SELECT * FROM vote WHERE motion_id=$1 AND voter_id=$2")(motion_id, aid)
32 self.assertEqual(rn[0].get("result"),"yes")
33 self.assertEqual(rn[0].get("proxy_id"),aid)
35 bid=db.prepare("SELECT id FROM voter WHERE email=$1 AND host=$2")("User B", host)[0][0]
36 rn=db.prepare("SELECT * FROM vote WHERE motion_id=$1 AND voter_id=$2")(motion_id, bid)
37 self.assertEqual(rn[0].get("result"),"yes")
38 self.assertEqual(rn[0].get("proxy_id"),bid)
39 # proxy vote where proxy voted herself too
40 cid=db.prepare("SELECT id FROM voter WHERE email=$1 AND host=$2")("User C", host)[0][0]
41 rn=db.prepare("SELECT * FROM vote WHERE motion_id=$1 AND voter_id=$2")(motion_id, cid)
42 self.assertEqual(rn[0].get("result"),"no")
43 self.assertEqual(rn[0].get("proxy_id"),bid)
47 rn=db.prepare("SELECT * FROM vote WHERE motion_id=$1 AND voter_id=$2")(motion_id, cid)
48 self.assertEqual(rn[0].get("result"),"yes")
49 self.assertEqual(rn[0].get("proxy_id"),cid)
51 # test motion 4 and proxy vote where proxy did not vote herself
53 eid=db.prepare("SELECT id FROM voter WHERE email=$1 AND host=$2")("User E", host)[0][0]
54 rn=db.prepare("SELECT * FROM vote WHERE motion_id=$1 AND voter_id=$2")(motion_id, aid)
55 self.assertEqual(rn[0].get("result"),"yes")
56 self.assertEqual(rn[0].get("proxy_id"),eid)
61 aid=db.prepare("SELECT id FROM voter WHERE email=$1 AND host=$2")("User A", host)[0][0]
62 rn=db.prepare("SELECT * FROM vote WHERE motion_id=$1 AND voter_id=$2")(motion_id, aid)
63 self.assertEqual(rn[0].get("result"),"yes")
64 self.assertEqual(rn[0].get("proxy_id"),aid)
66 bid=db.prepare("SELECT id FROM voter WHERE email=$1 AND host=$2")("User B", host)[0][0]
67 rn=db.prepare("SELECT * FROM vote WHERE motion_id=$1 AND voter_id=$2")(motion_id, bid)
68 self.assertEqual(rn[0].get("result"),"no")
69 self.assertEqual(rn[0].get("proxy_id"),bid)
71 cid=db.prepare("SELECT id FROM voter WHERE email=$1 AND host=$2")("User C", host)[0][0]
72 rn=db.prepare("SELECT * FROM vote WHERE motion_id=$1 AND voter_id=$2")(motion_id, cid)
73 self.assertEqual(rn[0].get("result"),"no")
74 self.assertEqual(rn[0].get("proxy_id"),cid)
76 # User E not in host '127.0.0.1:5001'
77 rn=db.prepare("SELECT id FROM voter WHERE email=$1 AND host=$2")("User E", host)
78 self.assertEqual(len(rn),0)
81 rn=db.prepare("SELECT id FROM voter WHERE email=$1")("User D")
82 self.assertEqual(len(rn),0)