summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2009-05-18 16:21:42 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2009-05-18 16:21:42 +0000
commit7ff23a5218e05ae7e543e31f18b1a3fbe650e4cb (patch)
treeb0dacbbbdf41a8026abfe3bfdeaba33a9891133d
parentd7e531ce9f0def1f08d78b3a7a7d6f268c5eb0bb (diff)
downloadsqlalchemy-7ff23a5218e05ae7e543e31f18b1a3fbe650e4cb.tar.gz
- Fixed an attribute error introduced in 0.5.4 which wouldrel_0_5_4p1
occur when merge() was used with an incomplete object.
-rw-r--r--CHANGES7
-rw-r--r--lib/sqlalchemy/__init__.py2
-rw-r--r--lib/sqlalchemy/orm/attributes.py2
-rw-r--r--test/orm/merge.py9
4 files changed, 18 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 6074c83d8..165d2ec07 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,13 @@
CHANGES
=======
+0.5.4p1
+=======
+
+- orm
+ - Fixed an attribute error introduced in 0.5.4 which would
+ occur when merge() was used with an incomplete object.
+
0.5.4
=====
diff --git a/lib/sqlalchemy/__init__.py b/lib/sqlalchemy/__init__.py
index b28de9bc8..5502aa7b8 100644
--- a/lib/sqlalchemy/__init__.py
+++ b/lib/sqlalchemy/__init__.py
@@ -107,6 +107,6 @@ from sqlalchemy.engine import create_engine, engine_from_config
__all__ = sorted(name for name, obj in locals().items()
if not (name.startswith('_') or inspect.ismodule(obj)))
-__version__ = '0.5.4'
+__version__ = '0.5.4p1'
del inspect, sys
diff --git a/lib/sqlalchemy/orm/attributes.py b/lib/sqlalchemy/orm/attributes.py
index 4fa41ff3b..4fe562110 100644
--- a/lib/sqlalchemy/orm/attributes.py
+++ b/lib/sqlalchemy/orm/attributes.py
@@ -376,7 +376,7 @@ class AttributeImpl(object):
return self.set_committed_value(state, dict_, value)
else:
if self.key not in dict_:
- return self.get(state, passive=passive)
+ return self.get(state, dict_, passive=passive)
return dict_[self.key]
# Return a new, empty value
diff --git a/test/orm/merge.py b/test/orm/merge.py
index b0e236ba2..fd553f2bf 100644
--- a/test/orm/merge.py
+++ b/test/orm/merge.py
@@ -221,6 +221,15 @@ class MergeTest(_fixtures.FixtureTest):
eq_(on_load.called, 6)
@testing.resolve_artifact_names
+ def test_merge_empty_attributes(self):
+ mapper(User, dingalings)
+ u1 = User(id=1)
+ sess = create_session()
+ sess.merge(u1)
+ sess.flush()
+ assert u1.address_id is u1.data is None
+
+ @testing.resolve_artifact_names
def test_attribute_cascade(self):
"""Merge of a persistent entity with two child persistent entities."""