From: Thomas Herve Date: Tue, 24 Jun 2014 07:55:53 +0000 (+0200) Subject: Return the assigned value in MultableDict.setdefault X-Git-Tag: rel_1_0_0b1~352^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e36fb9e87c89fd0af8a4a99d2ae97aa3c7ae8ad3;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Return the assigned value in MultableDict.setdefault --- diff --git a/lib/sqlalchemy/ext/mutable.py b/lib/sqlalchemy/ext/mutable.py index d2c686048e..6373b2f007 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 9a030a4e99..32b3e11dd5 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'})