[Python-checkins] r78839 - in python/trunk: Lib/test/test_xml_etree.py Modules/_elementtree.c

florent.xicluna python-checkins at python.org
Thu Mar 11 16:55:11 CET 2010


Author: florent.xicluna
Date: Thu Mar 11 16:55:11 2010
New Revision: 78839

Log:
Fix repr of tree Element on windows.


Modified:
   python/trunk/Lib/test/test_xml_etree.py
   python/trunk/Modules/_elementtree.c

Modified: python/trunk/Lib/test/test_xml_etree.py
==============================================================================
--- python/trunk/Lib/test/test_xml_etree.py	(original)
+++ python/trunk/Lib/test/test_xml_etree.py	Thu Mar 11 16:55:11 2010
@@ -131,7 +131,7 @@
 # element tree tests
 
 def interface():
-    """
+    r"""
     Test element tree interface.
 
     >>> element = ET.Element("tag")
@@ -139,10 +139,11 @@
     >>> 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.
 

Modified: python/trunk/Modules/_elementtree.c
==============================================================================
--- python/trunk/Modules/_elementtree.c	(original)
+++ python/trunk/Modules/_elementtree.c	Thu Mar 11 16:55:11 2010
@@ -1190,15 +1190,16 @@
 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;
 }


More information about the Python-checkins mailing list