diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-09-10 17:02:31 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-09-10 17:02:31 -0400 |
| commit | f2622c0c53e761759da89c784c5105d2a38dcab9 (patch) | |
| tree | 64d4657684c396fcad1d5a44e6bec80b5b327f77 /test/dialect/test_firebird.py | |
| parent | cd8b9dcd37e29b73a3c4b25adc16f1b45371fb7a (diff) | |
| download | sqlalchemy-f2622c0c53e761759da89c784c5105d2a38dcab9.tar.gz | |
- [bug] CompileError is raised when VARCHAR with
no length is attempted to be emitted, same
way as MySQL. [ticket:2505]
Diffstat (limited to 'test/dialect/test_firebird.py')
| -rw-r--r-- | test/dialect/test_firebird.py | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/test/dialect/test_firebird.py b/test/dialect/test_firebird.py index 41533dbbd..aa57711e4 100644 --- a/test/dialect/test_firebird.py +++ b/test/dialect/test_firebird.py @@ -1,10 +1,15 @@ -from test.lib.testing import eq_, assert_raises -from sqlalchemy import * +from test.lib.testing import eq_, assert_raises_message +from sqlalchemy import exc from sqlalchemy.databases import firebird from sqlalchemy.exc import ProgrammingError from sqlalchemy.sql import table, column -from test.lib import * - +from sqlalchemy import types as sqltypes +from test.lib import fixtures, AssertsExecutionResults, AssertsCompiledSQL +from test.lib import testing, engines +from sqlalchemy import String, VARCHAR, NVARCHAR, Unicode, Integer,\ + func, insert, update, MetaData, select, Table, Column, text,\ + Sequence, Float +from sqlalchemy import schema class DomainReflectionTest(fixtures.TestBase, AssertsExecutionResults): "Test Firebird domains" @@ -248,6 +253,33 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): 'FROM sometable sometable_1', dialect=dialect) + def test_varchar_raise(self): + for type_ in ( + String, + VARCHAR, + String(), + VARCHAR(), + Unicode, + Unicode(), + ): + type_ = sqltypes.to_instance(type_) + assert_raises_message( + exc.CompileError, + "VARCHAR requires a length on dialect firebird", + type_.compile, + dialect=firebird.dialect()) + + t1 = Table('sometable', MetaData(), + Column('somecolumn', type_) + ) + assert_raises_message( + exc.CompileError, + r"\(in table 'sometable', column 'somecolumn'\)\: " + r"(?:N)?VARCHAR requires a length on dialect firebird", + schema.CreateTable(t1).compile, + dialect=firebird.dialect() + ) + def test_function(self): self.assert_compile(func.foo(1, 2), 'foo(:foo_1, :foo_2)') self.assert_compile(func.current_time(), 'CURRENT_TIME') |
