summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-08-25 19:13:47 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-08-25 19:13:47 -0400
commit3531a924169a206c3fde4d280b9096fd0a9f138f (patch)
treefa92682c6bc673c68708997b3ce0ab2fd40dc519
parent4c1c9d5ed7b9e68dcd3a55cda35edc287b9185db (diff)
parent2645c8427729733fcd3db044abe7901412890214 (diff)
downloadsqlalchemy-3531a924169a206c3fde4d280b9096fd0a9f138f.tar.gz
Merge branch 'mutable-dict-update' of https://bitbucket.org/goodscloud/sqlalchemy into pr27
-rw-r--r--lib/sqlalchemy/ext/mutable.py4
-rw-r--r--test/ext/test_mutable.py12
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/sqlalchemy/ext/mutable.py b/lib/sqlalchemy/ext/mutable.py
index 1a4568f23..e49e9ea8b 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 305eb8c3a..f2d0123bd 100644
--- a/test/ext/test_mutable.py
+++ b/test/ext/test_mutable.py
@@ -119,6 +119,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()