Refs -- Added test for XML format output to Queryset.explain().
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):
