Fixed #24603 -- Allowed Context.update() to be used as a context manager.

This commit is contained in:
Tommy Beadle 2015-04-13 10:57:44 -04:00 committed by Tim Graham
parent c612786cf1
commit 6bfd864ff2
4 changed files with 32 additions and 2 deletions

View file

@ -21,6 +21,8 @@ class ContextTests(SimpleTestCase):
self.assertEqual(c["a"], 1)
self.assertEqual(c.get("foo", 42), 42)
def test_push_context_manager(self):
c = Context({"a": 1})
with c.push():
c['a'] = 2
self.assertEqual(c['a'], 2)
@ -30,6 +32,17 @@ class ContextTests(SimpleTestCase):
self.assertEqual(c['a'], 3)
self.assertEqual(c['a'], 1)
def test_update_context_manager(self):
c = Context({"a": 1})
with c.update({}):
c['a'] = 2
self.assertEqual(c['a'], 2)
self.assertEqual(c['a'], 1)
with c.update({'a': 3}):
self.assertEqual(c['a'], 3)
self.assertEqual(c['a'], 1)
def test_setdefault(self):
c = Context()