From 6c5b9b0770b55dd30b3be539fda8288ad55cfe78 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Thu, 24 Apr 2025 15:34:38 +0100 Subject: [PATCH 1/6] Apply patch Co-authored-by: Julian Gindi --- Lib/test/test_minidom.py | 52 +++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 3ecd1af31eea77..918fc34a828505 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -396,13 +396,37 @@ def testChangeAttr(self): dom.unlink() def testGetAttrList(self): - pass + dom = parseString("") + el = dom.documentElement + el.setAttribute("spam", "jam") + self.confirm(len(el.attributes.items()) == 1) + el.setAttribute("foo", "bar") + self.confirm(len(el.attributes.items()) == 2) + self.confirm(('spam', 'jam') in el.attributes.items()) + self.confirm(('foo', 'bar') in el.attributes.items()) + dom.unlink() def testGetAttrValues(self): - pass + dom = parseString("") + el = dom.documentElement + el.setAttribute("spam", "jam") + values = [x.value for x in el.attributes.values()] + self.confirm("jam" in values) + el.setAttribute("foo", "bar") + values = [x.value for x in el.attributes.values()] + self.confirm("bar" in values) + dom.unlink() def testGetAttrLength(self): - pass + dom = parseString("") + el = dom.documentElement + el.setAttribute("spam", "jam") + self.confirm(len(el.attributes.items()) == 1) + el.setAttribute("foo", "bar") + self.confirm(len(el.attributes.items()) == 2) + el.removeAttribute("foo") + self.confirm(len(el.attributes.items()) == 1) + dom.unlink() def testGetAttribute(self): dom = Document() @@ -496,7 +520,11 @@ def testAttributeRepr(self): self.confirm(str(node) == repr(node)) dom.unlink() - def testTextNodeRepr(self): pass + def testTextNodeRepr(self): + dom = Document() + el = dom.appendChild(dom.createElement("foo")) + self.confirm(str(el) == repr(el)) + dom.unlink() def testWriteXML(self): str = '' @@ -601,9 +629,21 @@ def testProcessingInstruction(self): and pi.localName is None and pi.namespaceURI == xml.dom.EMPTY_NAMESPACE) - def testProcessingInstructionRepr(self): pass + def testProcessingInstructionRepr(self): + dom = parseString('') + pi = dom.documentElement.firstChild + string1 = str(pi.nodeType) + string2 = repr(pi.nodeType) + self.assertEqual(string1, string2) - def testTextRepr(self): pass + def testTextRepr(self): + dom = Document() + elem = dom.createElement('elem') + elem.appendChild(dom.createTextNode("foo")) + el = elem.firstChild + string1 = str(el) + string2 = repr(el) + self.assertEqual(string1, string2) def testWriteText(self): pass From ec9c3823e69570ca36ef5a0b56c31932c4085607 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Thu, 24 Apr 2025 15:51:50 +0100 Subject: [PATCH 2/6] Clean up --- Lib/test/test_minidom.py | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 918fc34a828505..7bb14a6e35527c 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -395,15 +395,15 @@ def testChangeAttr(self): and el.getAttribute("spam2") == "bam2") dom.unlink() - def testGetAttrList(self): + def testGetAttrListAndLength(self): dom = parseString("") el = dom.documentElement el.setAttribute("spam", "jam") - self.confirm(len(el.attributes.items()) == 1) + self.assertEqual(len(el.attributes.items()), 1) el.setAttribute("foo", "bar") - self.confirm(len(el.attributes.items()) == 2) - self.confirm(('spam', 'jam') in el.attributes.items()) - self.confirm(('foo', 'bar') in el.attributes.items()) + self.assertEqual(len(el.attributes.items()), 2) + self.assertIn(('spam', 'jam'), el.attributes.items()) + self.assertIn(('foo', 'bar'), el.attributes.items()) dom.unlink() def testGetAttrValues(self): @@ -411,21 +411,10 @@ def testGetAttrValues(self): el = dom.documentElement el.setAttribute("spam", "jam") values = [x.value for x in el.attributes.values()] - self.confirm("jam" in values) + self.assertIn("jam", values) el.setAttribute("foo", "bar") values = [x.value for x in el.attributes.values()] - self.confirm("bar" in values) - dom.unlink() - - def testGetAttrLength(self): - dom = parseString("") - el = dom.documentElement - el.setAttribute("spam", "jam") - self.confirm(len(el.attributes.items()) == 1) - el.setAttribute("foo", "bar") - self.confirm(len(el.attributes.items()) == 2) - el.removeAttribute("foo") - self.confirm(len(el.attributes.items()) == 1) + self.assertIn("bar", values) dom.unlink() def testGetAttribute(self): @@ -632,18 +621,14 @@ def testProcessingInstruction(self): def testProcessingInstructionRepr(self): dom = parseString('') pi = dom.documentElement.firstChild - string1 = str(pi.nodeType) - string2 = repr(pi.nodeType) - self.assertEqual(string1, string2) + self.assertEqual(str(pi.nodeType), repr(pi.nodeType)) def testTextRepr(self): dom = Document() elem = dom.createElement('elem') elem.appendChild(dom.createTextNode("foo")) el = elem.firstChild - string1 = str(el) - string2 = repr(el) - self.assertEqual(string1, string2) + self.assertEqual(str(el), repr(el)) def testWriteText(self): pass From df9feb8816629cfef6cf0cc32e3982dbe7442be0 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Date: Fri, 25 Apr 2025 14:53:59 +0100 Subject: [PATCH 3/6] Update Lib/test/test_minidom.py Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- Lib/test/test_minidom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 7bb14a6e35527c..0bae094cb9e15c 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -512,7 +512,7 @@ def testAttributeRepr(self): def testTextNodeRepr(self): dom = Document() el = dom.appendChild(dom.createElement("foo")) - self.confirm(str(el) == repr(el)) + self.assertEqual(str(el), repr(el)) dom.unlink() def testWriteXML(self): From c3b759cc09ff30718ec402fb00fb0a8ef4076013 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Date: Fri, 25 Apr 2025 15:53:54 +0100 Subject: [PATCH 4/6] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> --- Lib/test/test_minidom.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 0bae094cb9e15c..477b4004219621 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -395,19 +395,21 @@ def testChangeAttr(self): and el.getAttribute("spam2") == "bam2") dom.unlink() - def testGetAttrListAndLength(self): + def testGetAttrList(self): dom = parseString("") + self.addCleanup(dom.unlink) el = dom.documentElement el.setAttribute("spam", "jam") self.assertEqual(len(el.attributes.items()), 1) el.setAttribute("foo", "bar") - self.assertEqual(len(el.attributes.items()), 2) - self.assertIn(('spam', 'jam'), el.attributes.items()) - self.assertIn(('foo', 'bar'), el.attributes.items()) - dom.unlink() + items = el.attributes.items() + self.assertEqual(len(items), 2) + self.assertIn(('spam', 'jam'), items) + self.assertIn(('foo', 'bar'), items) def testGetAttrValues(self): dom = parseString("") + self.addCleanup(dom.unlink) el = dom.documentElement el.setAttribute("spam", "jam") values = [x.value for x in el.attributes.values()] @@ -415,7 +417,6 @@ def testGetAttrValues(self): el.setAttribute("foo", "bar") values = [x.value for x in el.attributes.values()] self.assertIn("bar", values) - dom.unlink() def testGetAttribute(self): dom = Document() From 540a359393211270677d7532e07cb6164d758010 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Fri, 25 Apr 2025 16:04:26 +0100 Subject: [PATCH 5/6] Benedikt's suggestions --- Lib/test/test_minidom.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 477b4004219621..687939073879f8 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -417,6 +417,7 @@ def testGetAttrValues(self): el.setAttribute("foo", "bar") values = [x.value for x in el.attributes.values()] self.assertIn("bar", values) + self.assertIn("jam", values) def testGetAttribute(self): dom = Document() @@ -512,9 +513,9 @@ def testAttributeRepr(self): def testTextNodeRepr(self): dom = Document() - el = dom.appendChild(dom.createElement("foo")) - self.assertEqual(str(el), repr(el)) - dom.unlink() + self.addCleanup(dom.unlink) + text = dom.createTextNode("monty") + self.assertEqual(str(text), repr(text)) def testWriteXML(self): str = '' @@ -626,10 +627,12 @@ def testProcessingInstructionRepr(self): def testTextRepr(self): dom = Document() - elem = dom.createElement('elem') + self.addCleanup(dom.unlink) + elem = dom.createElement("elem") elem.appendChild(dom.createTextNode("foo")) el = elem.firstChild self.assertEqual(str(el), repr(el)) + self.assertEqual('', str(el)) def testWriteText(self): pass From 1d6e5ebd049e59070fb6f422b52f29f5d54bf16f Mon Sep 17 00:00:00 2001 From: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Date: Sat, 26 Apr 2025 12:26:42 +0100 Subject: [PATCH 6/6] Update Lib/test/test_minidom.py --- Lib/test/test_minidom.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 687939073879f8..bfd35369577d48 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -511,12 +511,6 @@ def testAttributeRepr(self): self.confirm(str(node) == repr(node)) dom.unlink() - def testTextNodeRepr(self): - dom = Document() - self.addCleanup(dom.unlink) - text = dom.createTextNode("monty") - self.assertEqual(str(text), repr(text)) - def testWriteXML(self): str = '' dom = parseString(str)