- changed status to resolved
need to assign polymorphic_on to all classes in hierarchy
Issue #2038
resolved
tests which fail:
class NoPolyIdentInMiddleTest(_base.MappedTest):
@classmethod
def define_tables(cls, metadata):
Table('base', metadata,
Column('id', Integer, primary_key=True, test_needs_autoincrement=True),
Column('type', String(50), nullable=False),
)
@classmethod
def setup_classes(cls):
class A(_base.BasicEntity):
pass
class B(A):
pass
class C(B):
pass
@classmethod
@testing.resolve_artifact_names
def setup_mappers(cls):
mapper(A, base, polymorphic_on=base.c.type)
mapper(B, inherits=A)
mapper(C, inherits=B, polymorphic_identity='c')
@testing.resolve_artifact_names
def test_load_from_middle(self):
s = Session()
s.add(C())
o = s.query(B).first()
eq_(o.type, 'c')
assert isinstance(o, C)
@testing.resolve_artifact_names
def test_load_from_base(self):
s = Session()
s.add(C())
o = s.query(A).first()
eq_(o.type, 'c')
assert isinstance(o, C)
@testing.resolve_artifact_names
def test_discriminator(self):
assert class_mapper(B).polymorphic_on is base.c.type
assert class_mapper(C).polymorphic_on is base.c.type
Comments (3)
-
reporter -
reporter additional fix to single table WHERE criterion:
4f1274fc1fc675e2a482b68d658b36597f243c31 25b891a218b5f333362f2b3e8c99675931e6e576
-
reporter - removed milestone
Removing milestone: 0.6.7 (automated comment)
- Log in to comment
c5b4938a9a2918a14397cff3edcee8c69ca249ea d8bb03124f65746ad742790717231b71290a7a9f