Issue #9137: Fix issue in MutableMapping.update, which incorrectly

treated keyword arguments called 'self' or 'other' specially.
This commit is contained in:
Mark Dickinson 2010-07-11 18:53:06 +00:00
parent 226f544caa
commit b214e90e01
3 changed files with 25 additions and 1 deletions

View file

@ -758,6 +758,19 @@ class TestOrderedDict(unittest.TestCase):
od.update([('a', 1), ('b', 2), ('c', 9), ('d', 4)], c=3, e=5)
self.assertEqual(list(od.items()), pairs) # mixed input
# Issue 9137: Named argument called 'other' or 'self'
# shouldn't be treated specially.
od = OrderedDict()
od.update(self=23)
self.assertEqual(list(od.items()), [('self', 23)])
od = OrderedDict()
od.update(other={})
self.assertEqual(list(od.items()), [('other', {})])
od = OrderedDict()
od.update(red=5, blue=6, other=7, self=8)
self.assertEqual(sorted(list(od.items())),
[('blue', 6), ('other', 7), ('red', 5), ('self', 8)])
# Make sure that direct calls to update do not clear previous contents
# add that updates items are not moved to the end
d = OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 44), ('e', 55)])