summaryrefslogtreecommitdiff
path: root/test/ext/test_declarative.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/ext/test_declarative.py')
-rw-r--r--test/ext/test_declarative.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/test/ext/test_declarative.py b/test/ext/test_declarative.py
index 3069c2bfe..69042b5c8 100644
--- a/test/ext/test_declarative.py
+++ b/test/ext/test_declarative.py
@@ -1,6 +1,6 @@
from test.lib.testing import eq_, assert_raises, \
- assert_raises_message
+ assert_raises_message, is_
from sqlalchemy.ext import declarative as decl
from sqlalchemy import exc
import sqlalchemy as sa
@@ -1855,6 +1855,23 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
eq_(sess.query(Engineer).filter_by(primary_language='cobol'
).one(), Engineer(name='vlad', primary_language='cobol'))
+ def test_polymorphic_on_converted_from_inst(self):
+ class A(Base):
+ __tablename__ = 'A'
+ id = Column(Integer, primary_key=True)
+ discriminator = Column(String)
+
+ @declared_attr
+ def __mapper_args__(cls):
+ return {
+ 'polymorphic_identity': cls.__name__,
+ 'polymorphic_on': cls.discriminator
+ }
+
+ class B(A):
+ pass
+ is_(B.__mapper__.polymorphic_on, A.__table__.c.discriminator)
+
def test_add_deferred(self):
class Person(Base, fixtures.ComparableEntity):