diff options
author | Jason Kirtland <jek@discorporate.us> | 2007-07-29 16:13:23 +0000 |
---|---|---|
committer | Jason Kirtland <jek@discorporate.us> | 2007-07-29 16:13:23 +0000 |
commit | 6a1d279a9a702a4c520446f52edeb1ee4864dd70 (patch) | |
tree | 4c69f76299ee30f3b715f7c43fcfc880d51803cd /test/dialect/mysql.py | |
parent | c9cc90bbdc24f8d4d0429468404cd43de46fc07f (diff) | |
download | sqlalchemy-6a1d279a9a702a4c520446f52edeb1ee4864dd70.tar.gz |
Big MySQL dialect update, mostly efficiency and style.
Added TINYINT [ticket:691]- whoa, how did that one go missing for so long?
Added a charset-fixing pool listener. The driver-level option doesn't help everyone with this one.
New reflector code not quite done and omiited from this commit.
Diffstat (limited to 'test/dialect/mysql.py')
-rw-r--r-- | test/dialect/mysql.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/dialect/mysql.py b/test/dialect/mysql.py index dbba78893..484022bd1 100644 --- a/test/dialect/mysql.py +++ b/test/dialect/mysql.py @@ -90,6 +90,17 @@ class TypesTest(AssertMixin): (mysql.MSBigInteger, [4], {'zerofill':True, 'unsigned':True}, 'BIGINT(4) UNSIGNED ZEROFILL'), + (mysql.MSTinyInteger, [], {}, + 'TINYINT'), + (mysql.MSTinyInteger, [1], {}, + 'TINYINT(1)'), + (mysql.MSTinyInteger, [1], {'unsigned':True}, + 'TINYINT(1) UNSIGNED'), + (mysql.MSTinyInteger, [1], {'zerofill':True}, + 'TINYINT(1) ZEROFILL'), + (mysql.MSTinyInteger, [1], {'zerofill':True, 'unsigned':True}, + 'TINYINT(1) UNSIGNED ZEROFILL'), + (mysql.MSSmallInteger, [], {}, 'SMALLINT'), (mysql.MSSmallInteger, [4], {}, @@ -320,5 +331,38 @@ class TypesTest(AssertMixin): m.drop_all() +class CharsetHelperTest(PersistTest): + @testing.supported('mysql') + def test_basic(self): + if testbase.db.dialect.get_version_info(testbase.db) < (4, 1): + return + + helper = mysql.MySQLCharsetOnConnect('utf8') + + e = create_engine(testbase.db.url, listeners=[helper]) + + rs = e.execute("SHOW VARIABLES LIKE 'character_set%%'") + vars = dict([(row[0], row[1]) for row in mysql._compat_fetchall(rs)]) + self.assert_(vars['character_set_client'] == 'utf8') + self.assert_(vars['character_set_connection'] == 'utf8') + + helper.charset = 'latin1' + e.pool.dispose() + rs = e.execute("SHOW VARIABLES LIKE 'character_set%%'") + vars = dict([(row[0], row[1]) for row in mysql._compat_fetchall(rs)]) + self.assert_(vars['character_set_client'] == 'latin1') + self.assert_(vars['character_set_connection'] == 'latin1') + + helper.charset = 'utf8' + helper.collation = 'utf8_bin' + e.pool.dispose() + rs = e.execute("SHOW VARIABLES LIKE 'character_set%%'") + vars = dict([(row[0], row[1]) for row in mysql._compat_fetchall(rs)]) + self.assert_(vars['character_set_client'] == 'utf8') + self.assert_(vars['character_set_connection'] == 'utf8') + rs = e.execute("SHOW VARIABLES LIKE 'collation%%'") + vars = dict([(row[0], row[1]) for row in mysql._compat_fetchall(rs)]) + self.assert_(vars['collation_connection'] == 'utf8_bin') + if __name__ == "__main__": testbase.main() |