MCPcopy Index your code
hub / github.com/python/cpython / test_new_child

Method test_new_child

Lib/test/test_collections.py:230–264  ·  view source on GitHub ↗

Tests for changes for issue #16613.

(self)

Source from the content-addressed store, hash-verified

228 self.assertEqual(dict(d.items()), dict(a=1, b=2, c=30))
229
230 def test_new_child(self):
231 'Tests for changes for issue #16613.'
232 c = ChainMap()
233 c['a'] = 1
234 c['b'] = 2
235 m = {'b':20, 'c': 30}
236 d = c.new_child(m)
237 self.assertEqual(d.maps, [{'b':20, 'c':30}, {'a':1, 'b':2}]) # check internal state
238 self.assertIs(m, d.maps[0])
239
240 # Use a different map than a dict
241 class lowerdict(dict):
242 def __getitem__(self, key):
243 if isinstance(key, str):
244 key = key.lower()
245 return dict.__getitem__(self, key)
246 def __contains__(self, key):
247 if isinstance(key, str):
248 key = key.lower()
249 return dict.__contains__(self, key)
250
251 c = ChainMap()
252 c['a'] = 1
253 c['b'] = 2
254 m = lowerdict(b=20, c=30)
255 d = c.new_child(m)
256 self.assertIs(m, d.maps[0])
257 for key in 'abc': # check contains
258 self.assertIn(key, d)
259 for k, v in dict(a=1, B=20, C=30, z=100).items(): # check get
260 self.assertEqual(d.get(k, 100), v)
261
262 c = ChainMap({'a': 1, 'b': 2})
263 d = c.new_child(b=20, c=30)
264 self.assertEqual(d.maps, [{'b': 20, 'c': 30}, {'a': 1, 'b': 2}])
265
266 def test_union_operators(self):
267 cm1 = ChainMap(dict(a=1, b=2), dict(c=3, d=4))

Callers

nothing calls this directly

Calls 8

new_childMethod · 0.95
ChainMapClass · 0.90
lowerdictClass · 0.85
assertInMethod · 0.80
assertEqualMethod · 0.45
assertIsMethod · 0.45
itemsMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected