- changed milestone to 0.5.4
polymorphic_on identity value not inserted if the 'on' column is a member of the primary key
Issue #1300
resolved
from sqlalchemy import *
from sqlalchemy.orm import *
def test(use_composite_pk):
metadata = MetaData('sqlite:///')
parents = Table('parents', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(60)))
children = Table('children', metadata,
Column('id', Integer, ForeignKey('parents.id'),
primary_key=True, nullable=False),
Column('type', Integer,
primary_key=use_composite_pk,
nullable=False),
Column('name', String(60)))
metadata.create_all()
class Parent(object):
def __init__(self, name=None):
self.name = name
class Child(object):
def __init__(self, name=None):
self.name = name
class A(Child): pass
mapper(Parent, parents, properties={
'children': relation(Child, backref='parent'),
})
mapper(Child, children, polymorphic_on=children.c.type,
polymorphic_identity=1)
mapper(A, inherits=Child, polymorphic_identity=2)
s = create_session()
p = Parent('p1')
a = A('a1')
p.children.append(a)
s.add(p)
s.flush()
assert a.id
assert a.type
print "1 col pk"
test(False)
print "2 col pk"
test(True)
Comments (5)
-
repo owner -
repo owner - changed status to resolved
-
repo owner fails (per
#1478):Index: test/orm/inheritance/test_basic.py =================================================================== --- test/orm/inheritance/test_basic.py (revision 6121) +++ test/orm/inheritance/test_basic.py (working copy) @@ -985,7 +985,15 @@ assert a.id assert a.type == 2 + p.name='p1new' + a.name='a1new' + s.flush() + s.expire_all() + assert a.name=='a1new' + assert p.name=='p1new' + + class DeleteOrphanTest(_base.MappedTest): @classmethod def define_tables(cls, metadata):
-
repo owner - changed status to resolved
-
repo owner - removed milestone
Removing milestone: 0.5.6 (automated comment)
- Log in to comment