summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_xml_etree.py20
-rw-r--r--Lib/xml/etree/ElementTree.py5
2 files changed, 23 insertions, 2 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index ee3154e..ca5bb56 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -3957,6 +3957,25 @@ class NoAcceleratorTest(unittest.TestCase):
self.assertIsInstance(pyET.Element.__init__, types.FunctionType)
self.assertIsInstance(pyET.XMLParser.__init__, types.FunctionType)
+# --------------------------------------------------------------------
+
+class BoolTest(unittest.TestCase):
+ def test_warning(self):
+ e = ET.fromstring('<a style="new"></a>')
+ msg = (
+ r"Testing an element's truth value will raise an exception in "
+ r"future versions. "
+ r"Use specific 'len\(elem\)' or 'elem is not None' test instead.")
+ with self.assertWarnsRegex(DeprecationWarning, msg):
+ result = bool(e)
+ # Emulate prior behavior for now
+ self.assertIs(result, False)
+
+ # Element with children
+ ET.SubElement(e, 'b')
+ with self.assertWarnsRegex(DeprecationWarning, msg):
+ new_result = bool(e)
+ self.assertIs(new_result, True)
# --------------------------------------------------------------------
@@ -4223,6 +4242,7 @@ def test_main(module=None):
XMLPullParserTest,
BugsTest,
KeywordArgsTest,
+ BoolTest,
C14NTest,
]
diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py
index df5d519..42574ee 100644
--- a/Lib/xml/etree/ElementTree.py
+++ b/Lib/xml/etree/ElementTree.py
@@ -200,9 +200,10 @@ class Element:
def __bool__(self):
warnings.warn(
- "The behavior of this method will change in future versions. "
+ "Testing an element's truth value will raise an exception in "
+ "future versions. "
"Use specific 'len(elem)' or 'elem is not None' test instead.",
- FutureWarning, stacklevel=2
+ DeprecationWarning, stacklevel=2
)
return len(self._children) != 0 # emulate old behaviour, for now