else:
uowcommit.register_dependency(self.mapper, self.parent)
uowcommit.register_processor(self.mapper, self, self.parent, False)
+ # this dependency processor is used to locate "private" child objects
+ # during a "delete" operation, when the objectstore is being committed
+ # with only a partial list of objects
uowcommit.register_processor(self.mapper, self, self.parent, True)
else:
raise AssertionError(" no foreign key ?")
childlist = childlist.added_items()
for o in childlist:
+ if o is None:
+ # this can be None due to the many-to-one dependency processor added
+ # for deleted items, line 385 properties.py
+ continue
if not o in childtask.objects:
# item needs to be saved since its added, or attached to a deleted object
childtask.append(o, isdelete=isdelete and dep.processor.private)
objectstore.clear()
clear_mappers()
+ def testsingle(self):
+ class C1(Tester):
+ pass
+ m1 = mapper(C1, t1, properties = {
+ 'c1s':relation(C1, private=True),
+ 'parent':relation(C1, primaryjoin=t1.c.parent_c1==t1.c.c1, foreignkey=t1.c.c1, lazy=True, uselist=False)
+ })
+ a = C1('head c1')
+ a.c1s.append(C1('another c1'))
+ objectstore.commit()
+ objectstore.delete(a)
+ objectstore.commit()
+
def testcycle(self):
class C1(Tester):
pass