diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-07-10 11:26:13 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-07-10 11:26:13 -0400 |
commit | e5d0fa94937b6572bbf4a08d4a8870e749fcea03 (patch) | |
tree | 1b032764420141d19560b89aa8beb4e453da826e | |
parent | 1fc440393a612abcb837871003ac0d81721e1938 (diff) | |
download | sqlalchemy-e5d0fa94937b6572bbf4a08d4a8870e749fcea03.tar.gz |
- The :meth:`.TypeEngine.with_variant` method will now accept a
type class as an argument which is internally converted to an
instance, using the same convention long established by other
constructs such as :class:`.Column`. fixes #3122
-rw-r--r-- | doc/build/changelog/changelog_09.rst | 9 | ||||
-rw-r--r-- | lib/sqlalchemy/sql/type_api.py | 2 | ||||
-rw-r--r-- | test/sql/test_types.py | 7 |
3 files changed, 17 insertions, 1 deletions
diff --git a/doc/build/changelog/changelog_09.rst b/doc/build/changelog/changelog_09.rst index f6aa96a0f..6473da10b 100644 --- a/doc/build/changelog/changelog_09.rst +++ b/doc/build/changelog/changelog_09.rst @@ -15,6 +15,15 @@ :released: .. change:: + :tags: bug, sql + :tickets: 3122 + + The :meth:`.TypeEngine.with_variant` method will now accept a + type class as an argument which is internally converted to an + instance, using the same convention long established by other + constructs such as :class:`.Column`. + + .. change:: :tags: bug, orm :tickets: 3117 diff --git a/lib/sqlalchemy/sql/type_api.py b/lib/sqlalchemy/sql/type_api.py index 6fa0bc64a..f9af21baa 100644 --- a/lib/sqlalchemy/sql/type_api.py +++ b/lib/sqlalchemy/sql/type_api.py @@ -263,7 +263,7 @@ class TypeEngine(Visitable): .. versionadded:: 0.7.2 """ - return Variant(self, {dialect_name: type_}) + return Variant(self, {dialect_name: to_instance(type_)}) @util.memoized_property diff --git a/test/sql/test_types.py b/test/sql/test_types.py index 1130c9e40..e5c1e7b62 100644 --- a/test/sql/test_types.py +++ b/test/sql/test_types.py @@ -816,6 +816,13 @@ class VariantTest(fixtures.TestBase, AssertsCompiledSQL): dialect=dialects.postgresql.dialect() ) + def test_to_instance(self): + self.assert_compile( + self.UTypeOne().with_variant(self.UTypeTwo, "postgresql"), + "UTYPETWO", + dialect=dialects.postgresql.dialect() + ) + def test_compile_composite(self): self.assert_compile( self.composite, |