@@ -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