diff --git a/tests/queries/test_explain.py b/tests/queries/test_explain.py index 4a22656657..9bf7de687a 100644 --- a/tests/queries/test_explain.py +++ b/tests/queries/test_explain.py @@ -1,4 +1,5 @@ import unittest +import xml.etree.ElementTree from django.db import NotSupportedError, connection, transaction from django.db.models import Count @@ -31,6 +32,13 @@ class ExplainTests(TestCase): self.assertTrue(captured_queries[0]['sql'].startswith(connection.ops.explain_prefix)) self.assertIsInstance(result, str) self.assertTrue(result) + if format == 'xml': + try: + xml.etree.ElementTree.fromstring(result) + except xml.etree.ElementTree.ParseError as e: + self.fail( + f'QuerySet.explain() result is not valid XML: {e}' + ) @skipUnlessDBFeature('validates_explain_options') def test_unknown_options(self):