Skip to content

Commit ada10e1

Browse files
committed
fixup! Add test for PostgreSQL transaction tracking
1 parent 55c127e commit ada10e1

File tree

1 file changed

+68
-51
lines changed

1 file changed

+68
-51
lines changed

tests/panels/test_sql.py

+68-51
Original file line numberDiff line numberDiff line change
@@ -528,13 +528,11 @@ def test_aliases(self):
528528
query = self.panel._queries[-1]
529529
self.assertEqual(query[0], "replica")
530530

531-
@unittest.skipUnless(
532-
connection.vendor == "postgresql", "Test valid only on PostgreSQL"
533-
)
534531
def test_transaction_status(self):
535532
"""
536-
Test case for tracking the transaction status is properly associated
537-
with queries.
533+
Test case for tracking the transaction status is properly associated with
534+
queries on PostgreSQL, and that transactions aren't broken on other database
535+
engines.
538536
"""
539537
self.assertEqual(len(self.panel._queries), 0)
540538

@@ -554,49 +552,68 @@ def test_transaction_status(self):
554552
response = self.panel.process_request(self.request)
555553
self.panel.generate_stats(self.request, response)
556554

557-
self.assertEqual(len(self.panel._queries), 6)
558-
559-
query = self.panel._queries[0]
560-
self.assertEqual(query[0], "default")
561-
self.assertIsNotNone(query[1]["trans_id"])
562-
self.assertTrue(query[1].get("starts_trans", False))
563-
self.assertTrue(query[1].get("in_trans", False))
564-
self.assertFalse(query[1].get("ends_trans", False))
565-
566-
query = self.panel._queries[-1]
567-
self.assertEqual(query[0], "replica")
568-
self.assertIsNone(query[1]["trans_id"])
569-
self.assertFalse(query[1].get("starts_trans", False))
570-
self.assertFalse(query[1].get("in_trans", False))
571-
self.assertFalse(query[1].get("ends_trans", False))
572-
self.assertFalse(query[1].get("ends_trans", False))
573-
574-
query = self.panel._queries[2]
575-
self.assertEqual(query[0], "default")
576-
self.assertEqual(query[1]["trans_id"], self.panel._queries[0][1]["trans_id"])
577-
self.assertFalse(query[1].get("starts_trans", False))
578-
self.assertTrue(query[1].get("in_trans", False))
579-
self.assertTrue(query[1].get("ends_trans", False))
580-
581-
query = self.panel._queries[3]
582-
self.assertEqual(query[0], "replica")
583-
self.assertNotEqual(query[1]["trans_id"], self.panel._queries[0][1]["trans_id"])
584-
self.assertTrue(query[1].get("starts_trans", False))
585-
self.assertTrue(query[1].get("in_trans", False))
586-
self.assertTrue(query[1].get("ends_trans", False))
587-
588-
query = self.panel._queries[4]
589-
self.assertEqual(query[0], "default")
590-
self.assertNotEqual(query[1]["trans_id"], self.panel._queries[0][1]["trans_id"])
591-
self.assertNotEqual(query[1]["trans_id"], self.panel._queries[3][1]["trans_id"])
592-
self.assertTrue(query[1].get("starts_trans", False))
593-
self.assertTrue(query[1].get("in_trans", False))
594-
self.assertTrue(query[1].get("ends_trans", False))
595-
596-
query = self.panel._queries[5]
597-
self.assertEqual(query[0], "replica")
598-
self.assertIsNone(query[1]["trans_id"])
599-
self.assertFalse(query[1].get("starts_trans", False))
600-
self.assertFalse(query[1].get("in_trans", False))
601-
self.assertFalse(query[1].get("ends_trans", False))
602-
self.assertFalse(query[1].get("ends_trans", False))
555+
if connection.vendor == "postgresql":
556+
# Connection tracking is currently only implemented for PostgreSQL.
557+
self.assertEqual(len(self.panel._queries), 6)
558+
559+
query = self.panel._queries[0]
560+
self.assertEqual(query[0], "default")
561+
self.assertIsNotNone(query[1]["trans_id"])
562+
self.assertTrue(query[1]["starts_trans"])
563+
self.assertTrue(query[1]["in_trans"])
564+
self.assertFalse("end_trans" in query[1])
565+
566+
query = self.panel._queries[-1]
567+
self.assertEqual(query[0], "replica")
568+
self.assertIsNone(query[1]["trans_id"])
569+
self.assertFalse("starts_trans" in query[1])
570+
self.assertFalse("in_trans" in query[1])
571+
self.assertFalse("end_trans" in query[1])
572+
573+
query = self.panel._queries[2]
574+
self.assertEqual(query[0], "default")
575+
self.assertIsNotNone(query[1]["trans_id"])
576+
self.assertEqual(
577+
query[1]["trans_id"], self.panel._queries[0][1]["trans_id"]
578+
)
579+
self.assertFalse("starts_trans" in query[1])
580+
self.assertTrue(query[1]["in_trans"])
581+
self.assertTrue(query[1]["ends_trans"])
582+
583+
query = self.panel._queries[3]
584+
self.assertEqual(query[0], "replica")
585+
self.assertIsNotNone(query[1]["trans_id"])
586+
self.assertNotEqual(
587+
query[1]["trans_id"], self.panel._queries[0][1]["trans_id"]
588+
)
589+
self.assertTrue(query[1]["starts_trans"])
590+
self.assertTrue(query[1]["in_trans"])
591+
self.assertTrue(query[1]["ends_trans"])
592+
593+
query = self.panel._queries[4]
594+
self.assertEqual(query[0], "default")
595+
self.assertIsNotNone(query[1]["trans_id"])
596+
self.assertNotEqual(
597+
query[1]["trans_id"], self.panel._queries[0][1]["trans_id"]
598+
)
599+
self.assertNotEqual(
600+
query[1]["trans_id"], self.panel._queries[3][1]["trans_id"]
601+
)
602+
self.assertTrue(query[1]["starts_trans"])
603+
self.assertTrue(query[1]["in_trans"])
604+
self.assertTrue(query[1]["ends_trans"])
605+
606+
query = self.panel._queries[5]
607+
self.assertEqual(query[0], "replica")
608+
self.assertIsNone(query[1]["trans_id"])
609+
self.assertFalse("starts_trans" in query[1])
610+
self.assertFalse("in_trans" in query[1])
611+
self.assertFalse("end_trans" in query[1])
612+
else:
613+
# Ensure that nothing was recorded for other database engines.
614+
self.assertTrue(self.panel._queries)
615+
for query in self.panel._queries:
616+
self.assertFalse("trans_id" in query[1])
617+
self.assertFalse("starts_trans" in query[1])
618+
self.assertFalse("in_trans" in query[1])
619+
self.assertFalse("end_trans" in query[1])

0 commit comments

Comments
 (0)