From: Matt Chisholm Date: Sun, 27 Jul 2014 10:15:51 +0000 (+0200) Subject: add update() support to MutableDict X-Git-Tag: rel_1_0_0b1~205^2~44^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2645c8427729733fcd3db044abe7901412890214;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git add update() support to MutableDict --- diff --git a/lib/sqlalchemy/ext/mutable.py b/lib/sqlalchemy/ext/mutable.py index 7469bcbdae..3ef2f979d2 100644 --- a/lib/sqlalchemy/ext/mutable.py +++ b/lib/sqlalchemy/ext/mutable.py @@ -621,6 +621,10 @@ class MutableDict(Mutable, dict): dict.__delitem__(self, key) self.changed() + def update(self, *a, **kw): + dict.update(self, *a, **kw) + self.changed() + def clear(self): dict.clear(self) self.changed() diff --git a/test/ext/test_mutable.py b/test/ext/test_mutable.py index 32b3e11dd5..9065f3d039 100644 --- a/test/ext/test_mutable.py +++ b/test/ext/test_mutable.py @@ -86,6 +86,18 @@ class _MutableDictTestBase(object): eq_(f1.data, {}) + def test_update(self): + sess = Session() + + f1 = Foo(data={'a': 'b'}) + sess.add(f1) + sess.commit() + + f1.data.update({'a': 'z'}) + sess.commit() + + eq_(f1.data, {'a': 'z'}) + def test_setdefault(self): sess = Session()