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

Method test_attrib

Lib/test/test_xml_etree.py:446–498  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

444 self.serialize_check(e3, '<tag>hello<foo /></tag>')
445
446 def test_attrib(self):
447 # Test attribute handling.
448
449 elem = ET.Element("tag")
450 elem.get("key") # 1.1
451 self.assertEqual(elem.get("key", "default"), 'default') # 1.2
452
453 elem.set("key", "value")
454 self.assertEqual(elem.get("key"), 'value') # 1.3
455
456 elem = ET.Element("tag", key="value")
457 self.assertEqual(elem.get("key"), 'value') # 2.1
458 self.assertEqual(elem.attrib, {'key': 'value'}) # 2.2
459
460 attrib = {"key": "value"}
461 elem = ET.Element("tag", attrib)
462 attrib.clear() # check for aliasing issues
463 self.assertEqual(elem.get("key"), 'value') # 3.1
464 self.assertEqual(elem.attrib, {'key': 'value'}) # 3.2
465
466 attrib = {"key": "value"}
467 elem = ET.Element("tag", **attrib)
468 attrib.clear() # check for aliasing issues
469 self.assertEqual(elem.get("key"), 'value') # 4.1
470 self.assertEqual(elem.attrib, {'key': 'value'}) # 4.2
471
472 elem = ET.Element("tag", {"key": "other"}, key="value")
473 self.assertEqual(elem.get("key"), 'value') # 5.1
474 self.assertEqual(elem.attrib, {'key': 'value'}) # 5.2
475
476 elem = ET.Element('test')
477 elem.text = "aa"
478 elem.set('testa', 'testval')
479 elem.set('testb', 'test2')
480 self.assertEqual(ET.tostring(elem),
481 b'<test testa="testval" testb="test2">aa</test>')
482 self.assertEqual(sorted(elem.keys()), ['testa', 'testb'])
483 self.assertEqual(sorted(elem.items()),
484 [('testa', 'testval'), ('testb', 'test2')])
485 self.assertEqual(elem.attrib['testb'], 'test2')
486 elem.attrib['testb'] = 'test1'
487 elem.attrib['testc'] = 'test2'
488 self.assertEqual(ET.tostring(elem),
489 b'<test testa="testval" testb="test1" testc="test2">aa</test>')
490
491 # Test preserving white space chars in attributes
492 elem = ET.Element('test')
493 elem.set('a', '\r')
494 elem.set('b', '\r\n')
495 elem.set('c', '\t\n\r ')
496 elem.set('d', '\n\n\r\r\t\t ')
497 self.assertEqual(ET.tostring(elem),
498 b'<test a="&#13;" b="&#13;&#10;" c="&#09;&#10;&#13; " d="&#10;&#10;&#13;&#13;&#09;&#09; " />')
499
500 def test_subelement_positional_only_parameter(self):
501 # Test SubElement positional-only parameters (gh-144270).

Callers

nothing calls this directly

Calls 6

getMethod · 0.95
setMethod · 0.95
keysMethod · 0.95
itemsMethod · 0.95
assertEqualMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected