]> granicus.if.org Git - python/commitdiff
Issue #16922: fixed findtext() to return empty Unicode string instead of empty bytes...
authorEli Bendersky <eliben@gmail.com>
Sun, 13 Jan 2013 13:26:07 +0000 (05:26 -0800)
committerEli Bendersky <eliben@gmail.com>
Sun, 13 Jan 2013 13:26:07 +0000 (05:26 -0800)
Patch by Serhiy Storchaka.

Lib/test/test_xml_etree.py
Modules/_elementtree.c

index 59a85081d81599fd0d48b84eabd9f8576e5d8459..b4edd7476f9b7b11055ed07621c810ca1182c20a 100644 (file)
@@ -1773,6 +1773,9 @@ class ElementFindTest(unittest.TestCase):
         self.assertIsNone(e.findtext('tog'))
         self.assertEqual(e.findtext('tog', 'default'), 'default')
 
+        # Issue #16922
+        self.assertEqual(ET.XML('<tag><empty /></tag>').findtext('empty'), '')
+
     def test_findall(self):
         e = ET.XML(SAMPLE_XML)
         e[2] = ET.XML(SAMPLE_SECTION)
index 274c65ed1eb7a26395a08c4fa9909d1015bcb58d..49441cc827eaf5f5d4eabf0afa400e75a1a67066 100644 (file)
@@ -1129,7 +1129,7 @@ element_findtext(ElementObject *self, PyObject *args, PyObject *kwds)
 
             PyObject* text = element_get_text(item);
             if (text == Py_None)
-                return PyBytes_FromString("");
+                return PyUnicode_New(0, 0);
             Py_XINCREF(text);
             return text;
         }