From: Mike Bayer Date: Tue, 6 Apr 2010 16:32:51 +0000 (-0400) Subject: test another version of the mixin here X-Git-Tag: rel_0_6_0~48^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e9cdc0b86ebae7463d33383b9a7e2706387fc6cf;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git test another version of the mixin here --- diff --git a/test/ext/test_declarative.py b/test/ext/test_declarative.py index b0140fb420..67e650c34f 100644 --- a/test/ext/test_declarative.py +++ b/test/ext/test_declarative.py @@ -2074,6 +2074,32 @@ class DeclarativeMixinTest(DeclarativeTestBase): assert class_mapper(Person).polymorphic_on is Person.__table__.c.type eq_(class_mapper(Engineer).polymorphic_identity, 'Engineer') + + def test_mapper_args_classproperty_two(self): + # same as test_mapper_args_classproperty, but + # we repeat ComputedMapperArgs on both classes + # for no apparent reason. + + class ComputedMapperArgs: + @classproperty + def __mapper_args__(cls): + if cls.__name__=='Person': + return dict(polymorphic_on=cls.discriminator) + else: + return dict(polymorphic_identity=cls.__name__) + + class Person(Base,ComputedMapperArgs): + __tablename__ = 'people' + id = Column(Integer, primary_key=True) + discriminator = Column('type', String(50)) + + class Engineer(Person, ComputedMapperArgs): + pass + + compile_mappers() + + assert class_mapper(Person).polymorphic_on is Person.__table__.c.type + eq_(class_mapper(Engineer).polymorphic_identity, 'Engineer') def test_table_args_composite(self):