MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_attrib

Method test_attrib

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

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 7

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

Tested by

no test coverage detected