]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Return the assigned value in MultableDict.setdefault
authorThomas Herve <thomas.herve@enovance.com>
Tue, 24 Jun 2014 07:55:53 +0000 (09:55 +0200)
committerThomas Herve <thomas.herve@enovance.com>
Tue, 24 Jun 2014 07:55:53 +0000 (09:55 +0200)
lib/sqlalchemy/ext/mutable.py
test/ext/test_mutable.py

index d2c686048e2891ca64dfe58a6571ae44ff09c5e9..6373b2f00793681f31916c04b6c22694eb643cb9 100644 (file)
@@ -612,8 +612,9 @@ class MutableDict(Mutable, dict):
 
 
     def setdefault(self, key, value):
-        dict.setdefault(self, key, value)
+        result = dict.setdefault(self, key, value)
         self.changed()
+        return result
 
     def __delitem__(self, key):
         """Detect dictionary del events and emit change events."""
index 9a030a4e998e6afcf762b46c946c2b1674ceccb2..32b3e11dd50447b4e9628b99df7491f3761597f3 100644 (file)
@@ -93,12 +93,12 @@ class _MutableDictTestBase(object):
         sess.add(f1)
         sess.commit()
 
-        f1.data.setdefault('c', 'd')
+        eq_(f1.data.setdefault('c', 'd'), 'd')
         sess.commit()
 
         eq_(f1.data, {'a': 'b', 'c': 'd'})
 
-        f1.data.setdefault('c', 'q')
+        eq_(f1.data.setdefault('c', 'q'), 'd')
         sess.commit()
 
         eq_(f1.data, {'a': 'b', 'c': 'd'})