| author | Radek Brich <brich.radek@ifortuna.cz> |
| Thu, 08 Aug 2013 15:26:24 +0200 | |
| changeset 85 | 11a282e23e0d |
| parent 75 | 39f777341db4 |
| child 104 | d8ff52a0390f |
| permissions | -rw-r--r-- |
|
49
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python3 |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
2 |
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
3 |
from tests.config import Config |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
4 |
from mytoolkit import mymanager |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
5 |
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
6 |
import unittest |
|
75
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
7 |
import logging |
|
49
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
8 |
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
9 |
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
10 |
class TestMyManager(unittest.TestCase): |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
11 |
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
12 |
def setUp(self): |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
13 |
cfg = Config('pgtoolkit.conf')
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
14 |
test_db_conn_params = cfg['databases']['test_mysql'] |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
15 |
params = self.params_to_mapping(test_db_conn_params) |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
16 |
self.m = mymanager.get_instance() |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
17 |
self.m.create_conn(**params) |
|
75
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
18 |
#self.setup_logging() |
|
49
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
19 |
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
20 |
def tearDown(self): |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
21 |
self.m.destroy_conn() |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
22 |
|
|
75
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
23 |
def setup_logging(self): |
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
24 |
#FIXME: write test handler, check SQL log |
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
25 |
log = logging.getLogger('mymanager_sql')
|
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
26 |
handler = logging.StreamHandler() |
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
27 |
log.addHandler(handler) |
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
28 |
log.setLevel(logging.DEBUG) |
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
29 |
|
|
49
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
30 |
def params_to_mapping(self, params): |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
31 |
return dict([param.split('=') for param in params.split(' ')])
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
32 |
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
33 |
def test_mysql_query(self): |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
34 |
with self.m.cursor() as curs: |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
35 |
ajaj = 1 |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
36 |
curs.execute('SELECT %(ajaj)s AS ajaj', locals())
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
37 |
row = curs.fetchone_dict() |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
38 |
self.assertEqual(row.ajaj, ajaj) |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
39 |
|
|
75
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
40 |
def test_mysql_error(self): |
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
41 |
with self.m.cursor() as curs: |
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
42 |
self.assertRaises(mymanager.OperationalError, |
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
43 |
curs.execute, 'SELECT give_me_some_error;') |
|
39f777341db4
MyManager: Add Cursor.mogrify(). Fix query logging. Update tests.
Radek Brich <radek.brich@devl.cz>
parents:
49
diff
changeset
|
44 |
|
|
49
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
45 |
|
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
46 |
if __name__ == '__main__': |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
47 |
unittest.main() |
|
08e4dfe1b0cb
Add test for MyManager (enable only when MySQLdb is available). Configure tests using pgtoolkit.conf (same as used by other executables).
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
48 |