]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- the versioning example works correctly now
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 5 Sep 2010 18:51:00 +0000 (14:51 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 5 Sep 2010 18:51:00 +0000 (14:51 -0400)
    if versioning on a col that was formerly
    NULL.

CHANGES
examples/versioning/history_meta.py
examples/versioning/test_versioning.py

diff --git a/CHANGES b/CHANGES
index 43b6336811291864078724a3dc046936013e5e1d..43cdb86ed98929e11a44cc2efe2d959f0bc81610 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -164,6 +164,10 @@ CHANGES
     by the versioning example is deprecated; 
     now use mapper.get_property_by_column() which 
     will remain the public method for this.
+
+  - the versioning example works correctly now
+    if versioning on a col that was formerly 
+    NULL.
     
 - sql
   - Added basic math expression coercion for 
index d2d7c124774898cf78d383da886d1fd7daf6cd6d..0a631e8492ed7700dba47af6bc1b91a60286149a 100644 (file)
@@ -144,9 +144,9 @@ def create_version(obj, session, deleted = False):
             elif u:
                 attr[hist_col.key] = u[0]
             else:
-                assert False, "Attribute had no previous state. "\
-                            "This indicates active_history isn't "\
-                            "working as expected."
+                # if the attribute had no value.
+                attr[hist_col.key] = a[0]
+                obj_changed = True
                 
     if not obj_changed and not deleted:            
         return
index 2a7a2ca668896bc3237653e78790e22086187a2d..031d7ca261bc834698c9bc8c1422cbcf122c4653 100644 (file)
@@ -86,8 +86,23 @@ class TestVersioning(TestBase):
             ]
         )
 
-
-
+    def test_from_null(self):
+        class SomeClass(Base, ComparableEntity):
+            __tablename__ = 'sometable'
+            
+            id = Column(Integer, primary_key=True)
+            name = Column(String(50))
+        
+        self.create_tables()
+        sess = Session()
+        sc = SomeClass()
+        sess.add(sc)
+        sess.commit()
+        
+        sc.name = 'sc1'
+        sess.commit()
+        
+        assert sc.version == 2
 
     def test_deferred(self):
         """test versioning of unloaded, deferred columns."""