summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-02-22 06:29:05 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-02-22 06:29:05 +0000
commitbdcc6e92aee1df4861e50b518fdeac76c40daece (patch)
treeed5f24714305706dfe00abecc8e63b02431ed2e8
parenteb8cd46bf5d64038892c7c2fd3b68c49517d094e (diff)
downloadsqlalchemy-bdcc6e92aee1df4861e50b518fdeac76c40daece.tar.gz
more fix to one-to-one: 'unchanged_items' can be [None] also with one to one so check for this
during delete
-rw-r--r--lib/sqlalchemy/mapping/properties.py5
-rw-r--r--test/onetoone.py3
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/sqlalchemy/mapping/properties.py b/lib/sqlalchemy/mapping/properties.py
index d03069f1e..c8f56746d 100644
--- a/lib/sqlalchemy/mapping/properties.py
+++ b/lib/sqlalchemy/mapping/properties.py
@@ -455,8 +455,9 @@ class PropertyLoader(MapperProperty):
for obj in deplist:
childlist = getlist(obj, False)
for child in childlist.deleted_items() + childlist.unchanged_items():
- self._synchronize(obj, child, None, True)
- uowcommit.register_object(child, postupdate=self.post_update)
+ if child is not None:
+ self._synchronize(obj, child, None, True)
+ uowcommit.register_object(child, postupdate=self.post_update)
elif self.association is not None:
# manage association objects.
for obj in deplist:
diff --git a/test/onetoone.py b/test/onetoone.py
index 77c38ff2a..9ff330c92 100644
--- a/test/onetoone.py
+++ b/test/onetoone.py
@@ -79,5 +79,8 @@ class O2OTest(testbase.AssertMixin):
self.assert_(p.jack is None)
objectstore.commit()
+ j.delete()
+ objectstore.commit()
+
if __name__ == "__main__":
testbase.main()