summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <classic@zzzcomputing.com>2014-07-06 17:12:23 -0400
committerMike Bayer <classic@zzzcomputing.com>2014-07-06 17:12:23 -0400
commit41563b5f5a03d8d977cd8098627e0fcec02aef99 (patch)
tree83df19f7c6e32988f656c2941c5b1683e7d13d68
parentf84e8bc3fad05d2e2b422c57c5ae9dd45b5152d5 (diff)
parente36fb9e87c89fd0af8a4a99d2ae97aa3c7ae8ad3 (diff)
downloadsqlalchemy-41563b5f5a03d8d977cd8098627e0fcec02aef99.tar.gz
Merged in therve/bug-3093/bug/3093 (pull request #24)
Return the assigned value in MultableDict.setdefault
-rw-r--r--lib/sqlalchemy/ext/mutable.py3
-rw-r--r--test/ext/test_mutable.py4
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/sqlalchemy/ext/mutable.py b/lib/sqlalchemy/ext/mutable.py
index d2c686048..6373b2f00 100644
--- a/lib/sqlalchemy/ext/mutable.py
+++ b/lib/sqlalchemy/ext/mutable.py
@@ -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."""
diff --git a/test/ext/test_mutable.py b/test/ext/test_mutable.py
index 9a030a4e9..32b3e11dd 100644
--- a/test/ext/test_mutable.py
+++ b/test/ext/test_mutable.py
@@ -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'})