Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 9ba26bc

Browse files
committedJul 13, 2016
added test test_encoding_latin1_statement
1 parent 3fd7f38 commit 9ba26bc

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
 

‎pymysqlreplication/tests/test_data_type.py

+30
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,36 @@ def test_encoding_utf8(self):
451451
event = self.create_and_insert_value(create_query, insert_query)
452452
self.assertMultiLineEqual(event.rows[0]["values"]["test"], string)
453453

454+
def test_encoding_latin1_statement(self):
455+
binlog_format = self.execute("show variables like 'binlog_format'").fetchone()[1]
456+
if binlog_format.upper() != "STATEMENT":
457+
raise unittest.SkipTest("Test test_encoding_latin1_statement is skipped, binlog_format"
458+
" is %s. It test require STATEMENT" % binlog_format)
459+
460+
db = copy.copy(self.database)
461+
db["charset"] = "latin1"
462+
self.connect_conn_control(db)
463+
464+
create_query = "CREATE TABLE test (test CHAR(12)) CHARACTER SET latin1 COLLATE latin1_bin;"
465+
insert_query = b"INSERT INTO test VALUES('\x96')"
466+
467+
self.execute(create_query)
468+
self.execute(insert_query)
469+
self.execute("COMMIT")
470+
471+
self.assertIsInstance(self.stream.fetchone(), RotateEvent)
472+
self.assertIsInstance(self.stream.fetchone(), FormatDescriptionEvent)
473+
# QueryEvent for the Create Table
474+
self.assertIsInstance(self.stream.fetchone(), QueryEvent)
475+
476+
# QueryEvent for the BEGIN
477+
self.assertIsInstance(self.stream.fetchone(), QueryEvent)
478+
479+
event = self.stream.fetchone()
480+
self.assertIsInstance(event, QueryEvent)
481+
482+
self.assertEqual(event.query, insert_query.decode("latin-1"))
483+
454484

455485
if __name__ == "__main__":
456486
unittest.main()

0 commit comments

Comments
 (0)
Please sign in to comment.