mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Issue #25691: Fixed crash on deleting ElementTree.Element attributes.
This commit is contained in:
commit
3987fefd6f
4 changed files with 67 additions and 0 deletions
|
@ -22,6 +22,38 @@ class MiscTests(unittest.TestCase):
|
|||
finally:
|
||||
data = None
|
||||
|
||||
def test_del_attribute(self):
|
||||
element = cET.Element('tag')
|
||||
|
||||
element.tag = 'TAG'
|
||||
with self.assertRaises(AttributeError):
|
||||
del element.tag
|
||||
self.assertEqual(element.tag, 'TAG')
|
||||
|
||||
with self.assertRaises(AttributeError):
|
||||
del element.text
|
||||
self.assertIsNone(element.text)
|
||||
element.text = 'TEXT'
|
||||
with self.assertRaises(AttributeError):
|
||||
del element.text
|
||||
self.assertEqual(element.text, 'TEXT')
|
||||
|
||||
with self.assertRaises(AttributeError):
|
||||
del element.tail
|
||||
self.assertIsNone(element.tail)
|
||||
element.tail = 'TAIL'
|
||||
with self.assertRaises(AttributeError):
|
||||
del element.tail
|
||||
self.assertEqual(element.tail, 'TAIL')
|
||||
|
||||
with self.assertRaises(AttributeError):
|
||||
del element.attrib
|
||||
self.assertEqual(element.attrib, {})
|
||||
element.attrib = {'A': 'B', 'C': 'D'}
|
||||
with self.assertRaises(AttributeError):
|
||||
del element.attrib
|
||||
self.assertEqual(element.attrib, {'A': 'B', 'C': 'D'})
|
||||
|
||||
|
||||
@unittest.skipUnless(cET, 'requires _elementtree')
|
||||
class TestAliasWorking(unittest.TestCase):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue