summaryrefslogtreecommitdiff
path: root/test/dialect/test_mysql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2009-10-25 21:27:08 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2009-10-25 21:27:08 +0000
commiteb9763febe58655ca0f61fa758925c56b94ece9b (patch)
tree52b93cd7ef50ae799d16fd4bc9d1c5ff5fd34e41 /test/dialect/test_mysql.py
parenta5f827b12dbceb1c6e8f8b787548b9de326fe076 (diff)
downloadsqlalchemy-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.py24
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')