diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-03-14 14:32:13 -0700 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-03-14 14:32:13 -0700 |
commit | 667f8f83fe2d41a7b53d854b3dbc45bd2cd9fbb0 (patch) | |
tree | 88e64857d240fce20cabd5aa7426c269a88af03c /test/dialect/test_mysql.py | |
parent | 0b97ba8a1410447797c0a1d049b2cfb6cc066ff3 (diff) | |
download | sqlalchemy-667f8f83fe2d41a7b53d854b3dbc45bd2cd9fbb0.tar.gz |
- [feature] Added support for MySQL index and
primary key constraint types
(i.e. USING) via new mysql_using parameter
to Index and PrimaryKeyConstraint,
courtesy Diana Clarke. [ticket:2386]
Diffstat (limited to 'test/dialect/test_mysql.py')
-rw-r--r-- | test/dialect/test_mysql.py | 57 |
1 files changed, 48 insertions, 9 deletions
diff --git a/test/dialect/test_mysql.py b/test/dialect/test_mysql.py index acb4aa5e4..462267b46 100644 --- a/test/dialect/test_mysql.py +++ b/test/dialect/test_mysql.py @@ -29,20 +29,59 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): self.assert_compile(x, '''SELECT mysql_table.col1, mysql_table.`master_ssl_verify_server_cert` FROM mysql_table''') - def test_create_index_with_length(self): + def test_create_index_simple(self): m = MetaData() tbl = Table('testtbl', m, Column('data', String(255))) - idx = Index('test_idx1', tbl.c.data, - mysql_length=10) - idx2 = Index('test_idx2', tbl.c.data, - mysql_length=5) + idx = Index('test_idx1', tbl.c.data) self.assert_compile(schema.CreateIndex(idx), - 'CREATE INDEX test_idx1 ON testtbl (data(10))', - dialect=mysql.dialect()) + 'CREATE INDEX test_idx1 ON testtbl (data)', + dialect=mysql.dialect()) + + def test_create_index_with_length(self): + m = MetaData() + tbl = Table('testtbl', m, Column('data', String(255))) + idx1 = Index('test_idx1', tbl.c.data, mysql_length=10) + idx2 = Index('test_idx2', tbl.c.data, mysql_length=5) + + self.assert_compile(schema.CreateIndex(idx1), + 'CREATE INDEX test_idx1 ON testtbl (data(10))', + dialect=mysql.dialect()) + self.assert_compile(schema.CreateIndex(idx2), + 'CREATE INDEX test_idx2 ON testtbl (data(5))', + dialect=mysql.dialect()) + + def test_create_index_with_using(self): + m = MetaData() + tbl = Table('testtbl', m, Column('data', String(255))) + idx1 = Index('test_idx1', tbl.c.data, mysql_using='btree') + idx2 = Index('test_idx2', tbl.c.data, mysql_using='hash') + + self.assert_compile(schema.CreateIndex(idx1), + 'CREATE INDEX test_idx1 ON testtbl (data) USING btree', + dialect=mysql.dialect()) self.assert_compile(schema.CreateIndex(idx2), - "CREATE INDEX test_idx2 ON testtbl (data(5))", - dialect=mysql.dialect()) + 'CREATE INDEX test_idx2 ON testtbl (data) USING hash', + dialect=mysql.dialect()) + + def test_create_pk_plain(self): + m = MetaData() + tbl = Table('testtbl', m, Column('data', String(255)), + PrimaryKeyConstraint('data')) + + self.assert_compile(schema.CreateTable(tbl), + "CREATE TABLE testtbl (data VARCHAR(255), PRIMARY KEY (data))", + dialect=mysql.dialect()) + + def test_create_pk_with_using(self): + m = MetaData() + tbl = Table('testtbl', m, Column('data', String(255)), + PrimaryKeyConstraint('data', mysql_using='btree')) + + self.assert_compile(schema.CreateTable(tbl), + "CREATE TABLE testtbl (data VARCHAR(255), " + "PRIMARY KEY (data) USING btree)", + dialect=mysql.dialect()) class DialectTest(fixtures.TestBase): __only_on__ = 'mysql' |