MCPcopy Create free account
hub / github.com/RustPython/RustPython / test_format_map

Method test_format_map

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

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 7

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

Tested by

no test coverage detected