@@ -626,6 +626,29 @@ def test_json_update(self):
626626 ),
627627 self .assertEqual (event .rows [0 ]["after_values" ]["setting" ], {b"btn" : True }),
628628
629+ def test_format_description_event (self ):
630+ self .stream .close ()
631+ self .stream = BinLogStreamReader (
632+ self .database ,
633+ server_id = 1024 ,
634+ blocking = False ,
635+ only_events = [FormatDescriptionEvent ],
636+ )
637+
638+ event = self .stream .fetchone ()
639+ self .assertIsInstance (event , FormatDescriptionEvent )
640+ self .assertIsInstance (event .binlog_version , tuple )
641+ self .assertIsInstance (event .mysql_version_str , str )
642+ self .assertTrue (
643+ event .mysql_version_str .startswith ("5." ) or event .mysql_version_str .startswith ("8." )) # Example check
644+ self .assertIsInstance (event .common_header_len , int )
645+ self .assertIsInstance (event .post_header_len , tuple )
646+ self .assertIsInstance (event .mysql_version , tuple )
647+ self .assertEqual (len (event .mysql_version ), 3 )
648+ self .assertIsInstance (event .server_version_split , tuple )
649+ self .assertEqual (len (event .server_version_split ), 3 )
650+ self .assertIsInstance (event .number_of_event_types , int )
651+
629652
630653class TestMultipleRowBinLogStreamReader (base .PyMySQLReplicationTestCase ):
631654 def setUp (self ):
@@ -1447,6 +1470,30 @@ def test_gtid_list_event(self):
14471470 self .assertEqual (event .event_type , 163 )
14481471 self .assertEqual (event .gtid_list [0 ].gtid , "0-1-15" )
14491472
1473+ def test_format_description_event (self ):
1474+ self .stream .close ()
1475+ self .stream = BinLogStreamReader (
1476+ self .database ,
1477+ server_id = 1024 ,
1478+ blocking = False ,
1479+ only_events = [FormatDescriptionEvent ],
1480+ is_mariadb = True ,
1481+ )
1482+
1483+ event = self .stream .fetchone ()
1484+ self .assertIsInstance (event , FormatDescriptionEvent )
1485+ self .assertIsInstance (event .binlog_version , tuple )
1486+ self .assertIsInstance (event .mysql_version_str , str )
1487+ self .assertTrue (
1488+ event .mysql_version_str .startswith ("10." ))
1489+ self .assertIsInstance (event .common_header_len , int )
1490+ self .assertIsInstance (event .post_header_len , tuple )
1491+ self .assertIsInstance (event .mysql_version , tuple )
1492+ self .assertEqual (len (event .mysql_version ), 3 )
1493+ self .assertIsInstance (event .server_version_split , tuple )
1494+ self .assertEqual (len (event .server_version_split ), 3 )
1495+ self .assertIsInstance (event .number_of_event_types , int )
1496+
14501497
14511498class TestRowsQueryLogEvents (base .PyMySQLReplicationTestCase ):
14521499 def setUp (self ):
0 commit comments