From b3b04ad2111f1e3eb0640cd5d51d4391655317ce Mon Sep 17 00:00:00 2001 From: Wu Haotian Date: Mon, 5 Jul 2021 14:17:31 +0800 Subject: [PATCH] Refs #28574 -- Added test for XML format output to Queryset.explain(). --- tests/queries/test_explain.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/queries/test_explain.py b/tests/queries/test_explain.py index 4a22656657f..9bf7de687a1 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):