diff options
-rw-r--r-- | Lib/test/test_xml_etree_c.py | 11 | ||||
-rw-r--r-- | Modules/_elementtree.c | 6 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Lib/test/test_xml_etree_c.py b/Lib/test/test_xml_etree_c.py index 56e7fedfdc..250f791073 100644 --- a/Lib/test/test_xml_etree_c.py +++ b/Lib/test/test_xml_etree_c.py @@ -204,6 +204,17 @@ def check_encoding(encoding): "<?xml version='1.0' encoding='%s'?><xml />" % encoding ) +def bug_1534630(): + """ + >>> bob = ET.TreeBuilder() + >>> e = bob.data("data") + >>> e = bob.start("tag", {}) + >>> e = bob.end("tag") + >>> e = bob.close() + >>> serialize(ET, e) + '<tag />' + """ + def test_main(): from test import test_xml_etree_c test_support.run_doctest(test_xml_etree_c, verbosity=True) diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index c9e524f74c..f21cf56856 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -48,7 +48,7 @@ #include "Python.h" -#define VERSION "1.0.6-snapshot" +#define VERSION "1.0.6" /* -------------------------------------------------------------------- */ /* configuration */ @@ -1599,6 +1599,10 @@ LOCAL(PyObject*) treebuilder_handle_data(TreeBuilderObject* self, PyObject* data) { if (!self->data) { + if (self->last == (ElementObject*) Py_None) { + /* ignore calls to data before the first call to start */ + Py_RETURN_NONE; + } /* store the first item as is */ Py_INCREF(data); self->data = data; } else { |