diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-10-25 21:27:08 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-10-25 21:27:08 +0000 |
commit | eb9763febe58655ca0f61fa758925c56b94ece9b (patch) | |
tree | 52b93cd7ef50ae799d16fd4bc9d1c5ff5fd34e41 /test/dialect/test_mysql.py | |
parent | a5f827b12dbceb1c6e8f8b787548b9de326fe076 (diff) | |
download | sqlalchemy-eb9763febe58655ca0f61fa758925c56b94ece9b.tar.gz |
- generalized Enum to issue a CHECK constraint + VARCHAR on default platform
- added native_enum=False flag to do the same on MySQL, PG, if desired
Diffstat (limited to 'test/dialect/test_mysql.py')
-rw-r--r-- | test/dialect/test_mysql.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/test/dialect/test_mysql.py b/test/dialect/test_mysql.py index 64f65d8f6..49dde1520 100644 --- a/test/dialect/test_mysql.py +++ b/test/dialect/test_mysql.py @@ -7,18 +7,19 @@ import sets # end Py2K from sqlalchemy import * -from sqlalchemy import sql, exc +from sqlalchemy import sql, exc, schema from sqlalchemy.dialects.mysql import base as mysql from sqlalchemy.test.testing import eq_ from sqlalchemy.test import * from sqlalchemy.test.engines import utf8_engine -class TypesTest(TestBase, AssertsExecutionResults): +class TypesTest(TestBase, AssertsExecutionResults, AssertsCompiledSQL): "Test MySQL column types" __only_on__ = 'mysql' - + __dialect__ = mysql.dialect() + @testing.uses_deprecated('Manually quoting ENUM value literals') def test_basic(self): meta1 = MetaData(testing.db) @@ -643,6 +644,23 @@ class TypesTest(TestBase, AssertsExecutionResults): finally: metadata.drop_all() + def test_enum_compile(self): + e1 = Enum('x', 'y', 'z', name="somename") + t1 = Table('sometable', MetaData(), Column('somecolumn', e1)) + self.assert_compile( + schema.CreateTable(t1), + "CREATE TABLE sometable (somecolumn ENUM('x','y','z'))" + ) + t1 = Table('sometable', MetaData(), + Column('somecolumn', Enum('x', 'y', 'z', native_enum=False)) + ) + self.assert_compile( + schema.CreateTable(t1), + "CREATE TABLE sometable (" + "somecolumn VARCHAR(1), " + " CHECK (somecolumn IN ('x','y','z'))" + ")" + ) @testing.exclude('mysql', '<', (4,), "3.23 can't handle an ENUM of ''") @testing.uses_deprecated('Manually quoting ENUM value literals') |