Commits

Mike Bayer committed 672f03f

- Fixed an attribute error introduced in 0.5.4 which would
occur when merge() was used with an incomplete object.

Comments (0)

Files changed (4)

 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
 =====
 

lib/sqlalchemy/__init__.py

 __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

lib/sqlalchemy/orm/attributes.py

                         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

test/orm/merge.py

         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."""
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.