diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-01-28 10:45:23 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-01-28 10:45:23 -0500 |
commit | 378e86124b598f2773cf124beab853ad63b71ee9 (patch) | |
tree | 786c0e08abb28aaf18c476be5ad46cb18e0027ca /test/ext/test_declarative.py | |
parent | 5221f492ca704d75561d7729fba0fa48fd3ad0fb (diff) | |
download | sqlalchemy-378e86124b598f2773cf124beab853ad63b71ee9.tar.gz |
- [bug] Fixed regression from 0.7.4 whereby
using an already instrumented column from a
superclass as "polymorphic_on" failed to resolve
the underlying Column. [ticket:2345]
Diffstat (limited to 'test/ext/test_declarative.py')
-rw-r--r-- | test/ext/test_declarative.py | 19 |
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): |