Diff of /test_MySQLdb_capabilities.py [000000] .. [e48810]  Maximize  Restore

Switch to unified view

a b/test_MySQLdb_capabilities.py
1
#!/usr/bin/env python
2
import test_capabilities
3
import unittest
4
import MySQLdb
5
import warnings
6
7
warnings.filterwarnings('error')
8
9
class test_MySQLdb(test_capabilities.DatabaseTest):
10
11
    db_module = MySQLdb
12
    connect_args = ()
13
    connect_kwargs = dict(db='test', read_default_file='~/.my.cnf',
14
                          charset='utf8', sql_mode="ANSI,STRICT_TRANS_TABLES,TRADITIONAL")
15
    create_table_extra = "ENGINE=INNODB CHARACTER SET UTF8"
16
    leak_test = True
17
    
18
    def quote_identifier(self, ident):
19
        return "`%s`" % ident
20
21
    def test_TIME(self):
22
        from datetime import timedelta
23
        def generator(row,col):
24
            return timedelta(0, row*8000)
25
        self.check_data_integrity(
26
                 ('col1 TIME',),
27
                 generator)
28
29
    def test_TINYINT(self):
30
        # Number data
31
        def generator(row,col):
32
            v = (row*row) % 256
33
            if v > 127:
34
                v = v-256
35
            return v
36
        self.check_data_integrity(
37
            ('col1 TINYINT',),
38
            generator)
39
40
    def test_SET(self):
41
        things = 'ash birch cedar larch pine'.split()
42
        def generator(row, col):
43
            from sets import Set
44
            s = Set()
45
            for i in range(len(things)):
46
                if (row >> i) & 1:
47
                    s.add(things[i])
48
            return s
49
        self.check_data_integrity(
50
            ('col1 SET(%s)' % ','.join(["'%s'" % t for t in things]),),
51
            generator)
52
53
    def test_stored_procedures(self):
54
        db = self.connection
55
        c = self.cursor
56
        self.create_table(('pos INT', 'tree CHAR(20)'))
57
        c.executemany("INSERT INTO %s (pos,tree) VALUES (%%s,%%s)" % self.table,
58
                      list(enumerate('ash birch cedar larch pine'.split())))
59
        db.commit()
60
        
61
        c.execute("""
62
        CREATE PROCEDURE test_sp(IN t VARCHAR(255))
63
        BEGIN
64
            SELECT pos FROM %s WHERE tree = t;
65
        END
66
        """ % self.table)
67
        db.commit()
68
69
        c.callproc('test_sp', ('larch',))
70
        rows = c.fetchall()
71
        self.assertEquals(len(rows), 1)
72
        self.assertEquals(rows[0][0], 3)
73
        c.nextset()
74
        
75
        c.execute("DROP PROCEDURE test_sp")
76
        c.execute('drop table %s' % (self.table))
77
78
        
79
if __name__ == '__main__':
80
    if test_MySQLdb.leak_test:
81
        import gc
82
        gc.enable()
83
        gc.set_debug(gc.DEBUG_LEAK)
84
    unittest.main()
85
    print '''"Huh-huh, he said 'unit'." -- Butthead'''

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks