Skip to content

Commit 880efe0

Browse files
Add test code for MariadbGTIDListEvent class
1 parent 6906da4 commit 880efe0

File tree

1 file changed

+37
-4
lines changed

1 file changed

+37
-4
lines changed

pymysqlreplication/tests/test_basic.py

+37-4
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ def ignoredEvents(self):
2727
return [GtidEvent]
2828

2929
def test_allowed_event_list(self):
30-
self.assertEqual(len(self.stream._allowed_event_list(None, None, False)), 20)
31-
self.assertEqual(len(self.stream._allowed_event_list(None, None, True)), 19)
32-
self.assertEqual(len(self.stream._allowed_event_list(None, [RotateEvent], False)), 19)
30+
self.assertEqual(len(self.stream._allowed_event_list(None, None, False)), 21)
31+
self.assertEqual(len(self.stream._allowed_event_list(None, None, True)), 20)
32+
self.assertEqual(len(self.stream._allowed_event_list(None, [RotateEvent], False)), 20)
3333
self.assertEqual(len(self.stream._allowed_event_list([RotateEvent], None, False)), 1)
3434

3535
def test_read_query_event(self):
@@ -1075,7 +1075,40 @@ def test_start_encryption_event(self):
10751075
self.assertEqual(schema, 1)
10761076
self.assertEqual(key_version, key_version_from_key_file)
10771077
self.assertEqual(type(nonce), bytes)
1078-
self.assertEqual(len(nonce), 12)
1078+
self.assertEqual(len(nonce), 12)
1079+
1080+
def test_gtid_list_event(self):
1081+
# set max_binlog_size to create new binlog file
1082+
query = 'SET GLOBAL max_binlog_size=4096'
1083+
self.execute(query)
1084+
# parse only Maradb GTID list event
1085+
self.stream.close()
1086+
self.stream = BinLogStreamReader(
1087+
self.database,
1088+
server_id=1024,
1089+
blocking=False,
1090+
only_events=[MariadbGtidListEvent],
1091+
is_mariadb=True,
1092+
)
1093+
1094+
query = "CREATE TABLE test (id INT NOT NULL AUTO_INCREMENT, data VARCHAR (50) NOT NULL, PRIMARY KEY (id))"
1095+
self.execute(query)
1096+
query = "INSERT INTO test (data) VALUES('Hello World')"
1097+
1098+
for cnt in range(0,15):
1099+
self.execute(query)
1100+
self.execute("COMMIT")
1101+
1102+
# 'mariadb gtid list event' of first binlog file
1103+
event = self.stream.fetchone()
1104+
self.assertEqual(event.event_type,163)
1105+
self.assertIsInstance(event,MariadbGtidListEvent)
1106+
1107+
# 'mariadb gtid list event' of second binlog file
1108+
event = self.stream.fetchone()
1109+
self.assertEqual(event.event_type,163)
1110+
self.assertEqual(event.gtid_list[0].gtid, '0-1-15')
1111+
10791112

10801113

10811114
class TestStatementConnectionSetting(base.PyMySQLReplicationTestCase):

0 commit comments

Comments
 (0)