]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- expanded assignment test, ensure that re-assigning the value of
authorJason Kirtland <jek@discorporate.us>
Thu, 21 Jun 2007 21:01:04 +0000 (21:01 +0000)
committerJason Kirtland <jek@discorporate.us>
Thu, 21 Jun 2007 21:01:04 +0000 (21:01 +0000)
  an association mutates the backing object (rather than a delete and
  create with new primary keys)

test/ext/associationproxy.py

index 61eb5ab129cf264a1c3c00edcc630ed9f934e57c..0d6329fd60c7e859989916ad5ba8a361e9a03209 100644 (file)
@@ -133,6 +133,13 @@ class _CollectionOperations(PersistTest):
         self.assert_(len(p1._children) == 3)
         self.assert_(len(p1.children) == 3)
 
+        p1.children[1] = 'changed-in-place'
+        self.assert_(p1.children[1] == 'changed-in-place')
+        inplace_id = p1._children[1].id
+        p1 = self.roundtrip(p1)
+        self.assert_(p1.children[1] == 'changed-in-place')
+        assert p1._children[1].id == inplace_id
+
         p1._children = []
         self.assert_(len(p1.children) == 0)
 
@@ -220,8 +227,12 @@ class CustomDictTest(DictTest):
         self.assert_(len(p1._children) == 3)
         self.assert_(len(p1.children) == 3)
 
-        p1.children['d'] = 'new d'
-        assert p1.children['d'] == 'new d'
+        p1.children['e'] = 'changed-in-place' 
+        self.assert_(p1.children['e'] == 'changed-in-place')
+        inplace_id = p1._children['e'].id
+        p1 = self.roundtrip(p1)
+        self.assert_(p1.children['e'] == 'changed-in-place')
+        self.assert_(p1._children['e'].id == inplace_id)
 
         p1._children = {}
         self.assert_(len(p1.children) == 0)