cpython: 0ca32013d77e (original) (raw)

--- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -14,9 +14,10 @@

Don't re-import "xml.etree.ElementTree" module in the docstring,

except if the test is specific to the Python implementation.

-import sys +import gc import html import io +import sys import unittest from test import support @@ -1846,6 +1847,30 @@ class BasicElementTest(unittest.TestCase self.assertRaises(TypeError, e.extend, [ET.Element('bar'), 'foo']) self.assertRaises(TypeError, e.insert, 0, 'foo')

+

+

+ class ElementTreeTest(unittest.TestCase): def test_istype(self):

--- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -282,7 +282,7 @@ create_new_element(PyObject* tag, PyObje { ElementObject* self;

@@ -309,7 +309,7 @@ create_new_element(PyObject* tag, PyObje self->tail = Py_None; ALLOC(sizeof(ElementObject), "create element"); -

@@ -556,19 +556,51 @@ subelement(PyObject* self, PyObject* arg return elem; } +static int +element_gc_traverse(ElementObject *self, visitproc visit, void *arg) +{

+

+

+} + +static int +element_gc_clear(ElementObject *self) +{

+

+} + static void element_dealloc(ElementObject* self) {

-

RELEASE(sizeof(ElementObject), "destroy element"); - Py_TYPE(self)->tp_free((PyObject )self); } @@ -589,7 +621,7 @@ element_append(ElementObject self, PyOb } static PyObject* -element_clear(ElementObject* self, PyObject* args) +element_clearmethod(ElementObject* self, PyObject* args) { if (!PyArg_ParseTuple(args, ":clear")) return NULL; @@ -1505,7 +1537,7 @@ element_ass_subscr(PyObject* self_, PyOb static PyMethodDef element_methods[] = {

{"get", (PyCFunction) element_get, METH_VARARGS}, {"set", (PyCFunction) element_set, METH_VARARGS}, @@ -1655,10 +1687,11 @@ static PyTypeObject Element_Type = { (getattrofunc)element_getattro, /* tp_getattro / 0, / tp_setattro / 0, / tp_as_buffer */