summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-07-10 11:26:13 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-07-10 11:26:13 -0400
commite5d0fa94937b6572bbf4a08d4a8870e749fcea03 (patch)
tree1b032764420141d19560b89aa8beb4e453da826e
parent1fc440393a612abcb837871003ac0d81721e1938 (diff)
downloadsqlalchemy-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.rst9
-rw-r--r--lib/sqlalchemy/sql/type_api.py2
-rw-r--r--test/sql/test_types.py7
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,