# element tree tests
def interface():
- """
+ r"""
Test element tree interface.
>>> element = ET.Element("tag")
>>> tree = ET.ElementTree(element)
>>> check_element(tree.getroot())
- >>> element = ET.Element("tag", key="value")
+ >>> element = ET.Element("t\xe4g", key="value")
>>> tree = ET.ElementTree(element)
>>> repr(element) # doctest: +ELLIPSIS
- "<Element 'tag' at 0x...>"
+ "<Element 't\\xe4g' at 0x...>"
+ >>> element = ET.Element("tag", key="value")
Make sure all standard element methods exist.
static PyObject*
element_repr(ElementObject* self)
{
- PyObject* repr;
- char buffer[100];
-
- repr = PyString_FromString("<Element ");
+ PyObject *repr, *tag;
- PyString_ConcatAndDel(&repr, PyObject_Repr(self->tag));
+ tag = PyObject_Repr(self->tag);
+ if (!tag)
+ return NULL;
- sprintf(buffer, " at %p>", self);
- PyString_ConcatAndDel(&repr, PyString_FromString(buffer));
+ repr = PyString_FromFormat("<Element %s at %p>",
+ PyString_AS_STRING(tag), self);
+
+ Py_DECREF(tag);
return repr;
}