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

Method test_format_map

Lib/test/test_str.py:1408–1461  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1406 self.assertRaises(TypeError, "{}".format, n)
1407
1408 def test_format_map(self):
1409 self.assertEqual(''.format_map({}), '')
1410 self.assertEqual('a'.format_map({}), 'a')
1411 self.assertEqual('ab'.format_map({}), 'ab')
1412 self.assertEqual('a{{'.format_map({}), 'a{')
1413 self.assertEqual('a}}'.format_map({}), 'a}')
1414 self.assertEqual('{{b'.format_map({}), '{b')
1415 self.assertEqual('}}b'.format_map({}), '}b')
1416 self.assertEqual('a{{b'.format_map({}), 'a{b')
1417
1418 # using mappings
1419 class Mapping(dict):
1420 def __missing__(self, key):
1421 return key
1422 self.assertEqual('{hello}'.format_map(Mapping()), 'hello')
1423 self.assertEqual('{a} {world}'.format_map(Mapping(a='hello')), 'hello world')
1424
1425 class InternalMapping:
1426 def __init__(self):
1427 self.mapping = {'a': 'hello'}
1428 def __getitem__(self, key):
1429 return self.mapping[key]
1430 self.assertEqual('{a}'.format_map(InternalMapping()), 'hello')
1431
1432
1433 class C:
1434 def __init__(self, x=100):
1435 self._x = x
1436 def __format__(self, spec):
1437 return spec
1438 self.assertEqual('{foo._x}'.format_map({'foo': C(20)}), '20')
1439
1440 # test various errors
1441 self.assertRaises(TypeError, ''.format_map)
1442 self.assertRaises(TypeError, 'a'.format_map)
1443
1444 self.assertRaises(ValueError, '{'.format_map, {})
1445 self.assertRaises(ValueError, '}'.format_map, {})
1446 self.assertRaises(ValueError, 'a{'.format_map, {})
1447 self.assertRaises(ValueError, 'a}'.format_map, {})
1448 self.assertRaises(ValueError, '{a'.format_map, {})
1449 self.assertRaises(ValueError, '}a'.format_map, {})
1450
1451 # issue #12579: can't supply positional params to format_map
1452 self.assertRaises(ValueError, '{}'.format_map, {'a' : 2})
1453 self.assertRaises(ValueError, '{}'.format_map, 'a')
1454 self.assertRaises(ValueError, '{a} {}'.format_map, {"a" : 2, "b" : 1})
1455
1456 class BadMapping:
1457 def __getitem__(self, key):
1458 return 1/0
1459 self.assertRaises(KeyError, '{a}'.format_map, {})
1460 self.assertRaises(TypeError, '{a}'.format_map, [])
1461 self.assertRaises(ZeroDivisionError, '{a}'.format_map, BadMapping())
1462
1463 def test_format_huge_precision(self):
1464 format_string = ".{}f".format(sys.maxsize + 1)

Callers

nothing calls this directly

Calls 7

InternalMappingClass · 0.85
format_mapMethod · 0.80
MappingClass · 0.70
CClass · 0.70
BadMappingClass · 0.70
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected