From c0086b68acc7b2694cfc8737311026c3d3caeca3 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 13 Jun 2012 17:59:07 -0400 Subject: [PATCH] - [bug] added BIGINT to types.__all__, BIGINT, BINARY, VARBINARY to sqlalchemy module namespace, plus test to ensure this breakage doesn't occur again. [ticket:2499] --- CHANGES | 7 +++++++ lib/sqlalchemy/__init__.py | 3 +++ lib/sqlalchemy/types.py | 10 +++++----- test/sql/test_types.py | 25 ++++++++++++++++--------- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/CHANGES b/CHANGES index 0c17b2d30c..0fb6a9f856 100644 --- a/CHANGES +++ b/CHANGES @@ -32,6 +32,13 @@ CHANGES was not accepting a scalar argument for the identity. [ticket:2508]. +- sql + - [bug] added BIGINT to types.__all__, + BIGINT, BINARY, VARBINARY to sqlalchemy + module namespace, plus test to ensure + this breakage doesn't occur again. + [ticket:2499] + - engine - [bug] Fixed memory leak in C version of result proxy whereby DBAPIs which don't deliver diff --git a/lib/sqlalchemy/__init__.py b/lib/sqlalchemy/__init__.py index ab3a28db21..6212bd311c 100644 --- a/lib/sqlalchemy/__init__.py +++ b/lib/sqlalchemy/__init__.py @@ -50,6 +50,8 @@ from sqlalchemy.sql import ( ) from sqlalchemy.types import ( + BIGINT, + BINARY, BLOB, BOOLEAN, BigInteger, @@ -87,6 +89,7 @@ from sqlalchemy.types import ( TypeDecorator, Unicode, UnicodeText, + VARBINARY, VARCHAR, ) diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py index e5dbe8671b..0699e498a2 100644 --- a/lib/sqlalchemy/types.py +++ b/lib/sqlalchemy/types.py @@ -14,11 +14,11 @@ For more information see the SQLAlchemy documentation on types. __all__ = [ 'TypeEngine', 'TypeDecorator', 'AbstractType', 'UserDefinedType', 'INT', 'CHAR', 'VARCHAR', 'NCHAR', 'NVARCHAR','TEXT', 'Text', 'FLOAT', 'NUMERIC', 'REAL', 'DECIMAL', 'TIMESTAMP', 'DATETIME', - 'CLOB', 'BLOB', 'BINARY', 'VARBINARY', 'BOOLEAN', 'SMALLINT', 'INTEGER', 'DATE', 'TIME', - 'String', 'Integer', 'SmallInteger', 'BigInteger', 'Numeric', - 'Float', 'DateTime', 'Date', 'Time', 'LargeBinary', 'Binary', - 'Boolean', 'Unicode', 'MutableType', 'Concatenable', - 'UnicodeText','PickleType', 'Interval', 'Enum' ] + 'CLOB', 'BLOB', 'BINARY', 'VARBINARY', 'BOOLEAN', 'BIGINT', 'SMALLINT', + 'INTEGER', 'DATE', 'TIME', 'String', 'Integer', 'SmallInteger', + 'BigInteger', 'Numeric', 'Float', 'DateTime', 'Date', 'Time', + 'LargeBinary', 'Binary', 'Boolean', 'Unicode', 'Concatenable', + 'UnicodeText','PickleType', 'Interval', 'Enum', 'MutableType' ] import inspect import datetime as dt diff --git a/test/sql/test_types.py b/test/sql/test_types.py index 951e1551d8..659c7f2ae3 100644 --- a/test/sql/test_types.py +++ b/test/sql/test_types.py @@ -29,20 +29,27 @@ class AdaptTest(fixtures.TestBase): return [d.base.dialect() for d in self._all_dialect_modules()] - def _all_types(self): - def types_for_mod(mod): - for key in dir(mod): - typ = getattr(mod, key) - if not isinstance(typ, type) or not issubclass(typ, types.TypeEngine): - continue - yield typ + def _types_for_mod(self, mod): + for key in dir(mod): + typ = getattr(mod, key) + if not isinstance(typ, type) or not issubclass(typ, types.TypeEngine): + continue + yield typ - for typ in types_for_mod(types): + def _all_types(self): + for typ in self._types_for_mod(types): yield typ for dialect in self._all_dialect_modules(): - for typ in types_for_mod(dialect): + for typ in self._types_for_mod(dialect): yield typ + def test_uppercase_importable(self): + import sqlalchemy as sa + for typ in self._types_for_mod(types): + if typ.__name__ == typ.__name__.upper(): + assert getattr(sa, typ.__name__) is typ + assert typ.__name__ in types.__all__ + def test_uppercase_rendering(self): """Test that uppercase types from types.py always render as their type. -- 2.47.2