(self)
| 246 | tree._setroot(None) |
| 247 | |
| 248 | def test_interface(self): |
| 249 | # Test element tree interface. |
| 250 | |
| 251 | def check_element(element): |
| 252 | self.assertTrue(ET.iselement(element), msg="not an element") |
| 253 | direlem = dir(element) |
| 254 | for attr in 'tag', 'attrib', 'text', 'tail': |
| 255 | self.assertHasAttr(element, attr) |
| 256 | self.assertIn(attr, direlem, |
| 257 | msg='no %s visible by dir' % attr) |
| 258 | |
| 259 | self.assertIsInstance(element.tag, str) |
| 260 | self.assertIsInstance(element.attrib, dict) |
| 261 | if element.text is not None: |
| 262 | self.assertIsInstance(element.text, str) |
| 263 | if element.tail is not None: |
| 264 | self.assertIsInstance(element.tail, str) |
| 265 | for elem in element: |
| 266 | check_element(elem) |
| 267 | |
| 268 | element = ET.Element("tag") |
| 269 | check_element(element) |
| 270 | tree = ET.ElementTree(element) |
| 271 | check_element(tree.getroot()) |
| 272 | element = ET.Element("t\xe4g", key="value") |
| 273 | tree = ET.ElementTree(element) |
| 274 | self.assertRegex(repr(element), r"^<Element 't\xe4g' at 0x.*>$") |
| 275 | element = ET.Element("tag", key="value") |
| 276 | |
| 277 | # Make sure all standard element methods exist. |
| 278 | |
| 279 | def check_method(method): |
| 280 | self.assertHasAttr(method, '__call__', |
| 281 | msg="%s not callable" % method) |
| 282 | |
| 283 | check_method(element.append) |
| 284 | check_method(element.extend) |
| 285 | check_method(element.insert) |
| 286 | check_method(element.remove) |
| 287 | check_method(element.find) |
| 288 | check_method(element.iterfind) |
| 289 | check_method(element.findall) |
| 290 | check_method(element.findtext) |
| 291 | check_method(element.clear) |
| 292 | check_method(element.get) |
| 293 | check_method(element.set) |
| 294 | check_method(element.keys) |
| 295 | check_method(element.items) |
| 296 | check_method(element.iter) |
| 297 | check_method(element.itertext) |
| 298 | |
| 299 | # These methods return an iterable. See bug 6472. |
| 300 | |
| 301 | def check_iter(it): |
| 302 | check_method(it.__next__) |
| 303 | |
| 304 | check_iter(element.iterfind("tag")) |
| 305 | check_iter(element.iterfind("*")) |
nothing calls this directly
no test coverage detected