Skip to content

Commit e91a6dc

Browse files
committed
fix: testcase
1 parent cea84e8 commit e91a6dc

File tree

2 files changed

+72
-77
lines changed

2 files changed

+72
-77
lines changed

pymysqlreplication/tests/test_basic.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,8 @@ def test_ignore_decode_errors(self):
763763
event = self.stream.fetchone()
764764
with self.assertRaises(UnicodeError):
765765
event = self.stream.fetchone()
766-
data = event.rows[0]["values"]["data"]
766+
if event.table_map[event.table_id].column_name_flag:
767+
data = event.rows[0]["values"]["data"]
767768

768769
# Initialize with ignore_decode_errors=True
769770
self.stream = BinLogStreamReader(
@@ -775,8 +776,9 @@ def test_ignore_decode_errors(self):
775776
self.stream.fetchone()
776777
self.stream.fetchone()
777778
event = self.stream.fetchone()
778-
data = event.rows[0]["values"]["data"]
779-
self.assertEqual(data, '[{"text":" Some string"}]')
779+
if event.table_map[event.table_id].column_name_flag:
780+
data = event.rows[0]["values"]["data"]
781+
self.assertEqual(data, '[{"text":" Some string"}]')
780782

781783
def test_drop_column(self):
782784
self.stream.close()

pymysqlreplication/tests/test_data_type.py

+67-74
Original file line numberDiff line numberDiff line change
@@ -473,95 +473,78 @@ def test_bit(self):
473473
self.assertEqual(event.columns[2].bits, 12)
474474
self.assertEqual(event.columns[3].bits, 9)
475475
self.assertEqual(event.columns[4].bits, 64)
476-
self.assertEqual(event.rows[0]["values"]["test"], "100010")
477-
self.assertEqual(event.rows[0]["values"]["test2"], "1000101010111000")
478-
self.assertEqual(event.rows[0]["values"]["test3"], "100010101101")
479-
self.assertEqual(event.rows[0]["values"]["test4"], "101100111")
480-
self.assertEqual(
481-
event.rows[0]["values"]["test5"],
482-
"1101011010110100100111100011010100010100101110111011101011011010",
483-
)
484-
485-
def test_enum(self):
486-
create_query = "CREATE TABLE test (test ENUM('a', 'ba', 'c'), test2 ENUM('a', 'ba', 'c')) CHARACTER SET latin1 COLLATE latin1_bin;"
487-
insert_query = "INSERT INTO test VALUES('ba', 'a')"
488-
event = self.create_and_insert_value(create_query, insert_query)
489-
self.assertEqual(event.rows[0]["values"]["test"], "ba")
490-
self.assertEqual(event.rows[0]["values"]["test2"], "a")
491-
492-
def test_enum_empty_string(self):
493-
create_query = "CREATE TABLE test (test ENUM('a', 'ba', 'c'), test2 ENUM('a', 'ba', 'c')) CHARACTER SET latin1 COLLATE latin1_bin;"
494-
insert_query = "INSERT INTO test VALUES('ba', 'asdf')"
495-
last_sql_mode = self.execute("SELECT @@SESSION.sql_mode;").fetchall()[0][0]
496-
self.execute("SET SESSION sql_mode = 'ANSI';")
497-
event = self.create_and_insert_value(create_query, insert_query)
498-
self.execute("SET SESSION sql_mode = '%s';" % last_sql_mode)
499-
500-
self.assertEqual(event.rows[0]["values"]["test"], "ba")
501-
self.assertEqual(event.rows[0]["values"]["test2"], "")
502-
503-
def test_set(self):
504-
create_query = "CREATE TABLE test (test SET('a', 'ba', 'c'), test2 SET('a', 'ba', 'c')) CHARACTER SET latin1 COLLATE latin1_bin;"
505-
insert_query = "INSERT INTO test VALUES('ba,a,c', 'a,c')"
506-
event = self.create_and_insert_value(create_query, insert_query)
507-
self.assertEqual(event.rows[0]["values"]["test"], set(("a", "ba", "c")))
508-
self.assertEqual(event.rows[0]["values"]["test2"], set(("a", "c")))
476+
if event.table_map[event.table_id].column_name_flag:
477+
self.assertEqual(event.rows[0]["values"]["test"], "100010")
478+
self.assertEqual(event.rows[0]["values"]["test2"], "1000101010111000")
479+
self.assertEqual(event.rows[0]["values"]["test3"], "100010101101")
480+
self.assertEqual(event.rows[0]["values"]["test4"], "101100111")
481+
self.assertEqual(
482+
event.rows[0]["values"]["test5"],
483+
"1101011010110100100111100011010100010100101110111011101011011010",
484+
)
509485

510486
def test_tiny_blob(self):
511487
create_query = "CREATE TABLE test (test TINYBLOB, test2 TINYTEXT) CHARACTER SET latin1 COLLATE latin1_bin;"
512488
insert_query = "INSERT INTO test VALUES('Hello', 'World')"
513489
event = self.create_and_insert_value(create_query, insert_query)
514-
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
515-
self.assertEqual(event.rows[0]["values"]["test2"], "World")
490+
if event.table_map[event.table_id].column_name_flag:
491+
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
492+
self.assertEqual(event.rows[0]["values"]["test2"], "World")
516493

517494
def test_medium_blob(self):
518495
create_query = "CREATE TABLE test (test MEDIUMBLOB, test2 MEDIUMTEXT) CHARACTER SET latin1 COLLATE latin1_bin;"
519496
insert_query = "INSERT INTO test VALUES('Hello', 'World')"
520497
event = self.create_and_insert_value(create_query, insert_query)
521-
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
522-
self.assertEqual(event.rows[0]["values"]["test2"], "World")
498+
if event.table_map[event.table_id].column_name_flag:
499+
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
500+
self.assertEqual(event.rows[0]["values"]["test2"], "World")
523501

524502
def test_long_blob(self):
525503
create_query = "CREATE TABLE test (test LONGBLOB, test2 LONGTEXT) CHARACTER SET latin1 COLLATE latin1_bin;"
526504
insert_query = "INSERT INTO test VALUES('Hello', 'World')"
527505
event = self.create_and_insert_value(create_query, insert_query)
528-
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
529-
self.assertEqual(event.rows[0]["values"]["test2"], "World")
506+
if event.table_map[event.table_id].column_name_flag:
507+
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
508+
self.assertEqual(event.rows[0]["values"]["test2"], "World")
530509

531510
def test_blob(self):
532511
create_query = "CREATE TABLE test (test BLOB, test2 TEXT) CHARACTER SET latin1 COLLATE latin1_bin;"
533512
insert_query = "INSERT INTO test VALUES('Hello', 'World')"
534513
event = self.create_and_insert_value(create_query, insert_query)
535-
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
536-
self.assertEqual(event.rows[0]["values"]["test2"], "World")
514+
if event.table_map[event.table_id].column_name_flag:
515+
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
516+
self.assertEqual(event.rows[0]["values"]["test2"], "World")
537517

538518
def test_string(self):
539519
create_query = (
540520
"CREATE TABLE test (test CHAR(12)) CHARACTER SET latin1 COLLATE latin1_bin;"
541521
)
542522
insert_query = "INSERT INTO test VALUES('Hello')"
543523
event = self.create_and_insert_value(create_query, insert_query)
544-
self.assertEqual(event.rows[0]["values"]["test"], "Hello")
524+
if event.table_map[event.table_id].column_name_flag:
525+
self.assertEqual(event.rows[0]["values"]["test"], "Hello")
545526

546527
def test_geometry(self):
547528
create_query = "CREATE TABLE test (test GEOMETRY);"
548529
insert_query = "INSERT INTO test VALUES(GeomFromText('POINT(1 1)'))"
549530
event = self.create_and_insert_value(create_query, insert_query)
550-
self.assertEqual(
551-
event.rows[0]["values"]["test"],
552-
b"\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?",
553-
)
531+
if event.table_map[event.table_id].column_name_flag:
532+
self.assertEqual(
533+
event.rows[0]["values"]["test"],
534+
b"\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?",
535+
)
554536

555537
def test_json(self):
556538
if not self.isMySQL57():
557539
self.skipTest("Json is only supported in mysql 5.7")
558540
create_query = "CREATE TABLE test (id int, value json);"
559541
insert_query = """INSERT INTO test (id, value) VALUES (1, '{"my_key": "my_val", "my_key2": "my_val2"}');"""
560542
event = self.create_and_insert_value(create_query, insert_query)
561-
self.assertEqual(
562-
event.rows[0]["values"]["value"],
563-
{b"my_key": b"my_val", b"my_key2": b"my_val2"},
564-
)
543+
if event.table_map[event.table_id].column_name_flag:
544+
self.assertEqual(
545+
event.rows[0]["values"]["value"],
546+
{b"my_key": b"my_val", b"my_key2": b"my_val2"},
547+
)
565548

566549
def test_json_array(self):
567550
if not self.isMySQL57():
@@ -571,7 +554,8 @@ def test_json_array(self):
571554
"""INSERT INTO test (id, value) VALUES (1, '["my_val", "my_val2"]');"""
572555
)
573556
event = self.create_and_insert_value(create_query, insert_query)
574-
self.assertEqual(event.rows[0]["values"]["value"], [b"my_val", b"my_val2"])
557+
if event.table_map[event.table_id].column_name_flag:
558+
self.assertEqual(event.rows[0]["values"]["value"], [b"my_val", b"my_val2"])
575559

576560
def test_json_large(self):
577561
if not self.isMySQL57():
@@ -584,8 +568,8 @@ def test_json_large(self):
584568
"""INSERT INTO test (id, value) VALUES (1, '%s');""" % json.dumps(data)
585569
)
586570
event = self.create_and_insert_value(create_query, insert_query)
587-
588-
self.assertEqual(event.rows[0]["values"]["value"], to_binary_dict(data))
571+
if event.table_map[event.table_id].column_name_flag:
572+
self.assertEqual(event.rows[0]["values"]["value"], to_binary_dict(data))
589573

590574
def test_json_large_array(self):
591575
"Test json array larger than 64k bytes"
@@ -597,7 +581,8 @@ def test_json_large_array(self):
597581
json.dumps(large_array),
598582
)
599583
event = self.create_and_insert_value(create_query, insert_query)
600-
self.assertEqual(event.rows[0]["values"]["value"], to_binary_dict(large_array))
584+
if event.table_map[event.table_id].column_name_flag:
585+
self.assertEqual(event.rows[0]["values"]["value"], to_binary_dict(large_array))
601586

602587
def test_json_large_with_literal(self):
603588
if not self.isMySQL57():
@@ -610,8 +595,8 @@ def test_json_large_with_literal(self):
610595
"""INSERT INTO test (id, value) VALUES (1, '%s');""" % json.dumps(data)
611596
)
612597
event = self.create_and_insert_value(create_query, insert_query)
613-
614-
self.assertEqual(event.rows[0]["values"]["value"], to_binary_dict(data))
598+
if event.table_map[event.table_id].column_name_flag:
599+
self.assertEqual(event.rows[0]["values"]["value"], to_binary_dict(data))
615600

616601
def test_json_types(self):
617602
if not self.isMySQL57():
@@ -638,7 +623,8 @@ def test_json_types(self):
638623
"""INSERT INTO test (id, value) VALUES (1, '%s');""" % json.dumps(data)
639624
)
640625
event = self.create_and_insert_value(create_query, insert_query)
641-
self.assertEqual(event.rows[0]["values"]["value"], to_binary_dict(data))
626+
if event.table_map[event.table_id].column_name_flag:
627+
self.assertEqual(event.rows[0]["values"]["value"], to_binary_dict(data))
642628

643629
self.tearDown()
644630
self.setUp()
@@ -666,7 +652,8 @@ def test_json_basic(self):
666652
"""INSERT INTO test (id, value) VALUES (1, '%s');""" % json.dumps(data)
667653
)
668654
event = self.create_and_insert_value(create_query, insert_query)
669-
self.assertEqual(event.rows[0]["values"]["value"], data)
655+
if event.table_map[event.table_id].column_name_flag:
656+
self.assertEqual(event.rows[0]["values"]["value"], data)
670657

671658
self.tearDown()
672659
self.setUp()
@@ -677,7 +664,8 @@ def test_json_unicode(self):
677664
create_query = "CREATE TABLE test (id int, value json);"
678665
insert_query = """INSERT INTO test (id, value) VALUES (1, '{"miam": "🍔"}');"""
679666
event = self.create_and_insert_value(create_query, insert_query)
680-
self.assertEqual(event.rows[0]["values"]["value"][b"miam"], "🍔".encode("utf8"))
667+
if event.table_map[event.table_id].column_name_flag:
668+
self.assertEqual(event.rows[0]["values"]["value"][b"miam"], "🍔".encode("utf8"))
681669

682670
def test_json_long_string(self):
683671
if not self.isMySQL57():
@@ -690,9 +678,10 @@ def test_json_long_string(self):
690678
% (string_value,)
691679
)
692680
event = self.create_and_insert_value(create_query, insert_query)
693-
self.assertEqual(
694-
event.rows[0]["values"]["value"], to_binary_dict({"my_key": string_value})
695-
)
681+
if event.table_map[event.table_id].column_name_flag:
682+
self.assertEqual(
683+
event.rows[0]["values"]["value"], to_binary_dict({"my_key": string_value})
684+
)
696685

697686
def test_null(self):
698687
create_query = "CREATE TABLE test ( \
@@ -719,11 +708,12 @@ def test_null(self):
719708
)"
720709
insert_query = "INSERT INTO test (test, test2, test3, test7, test20) VALUES(NULL, -128, NULL, 42, 84)"
721710
event = self.create_and_insert_value(create_query, insert_query)
722-
self.assertEqual(event.rows[0]["values"]["test"], None)
723-
self.assertEqual(event.rows[0]["values"]["test2"], -128)
724-
self.assertEqual(event.rows[0]["values"]["test3"], None)
725-
self.assertEqual(event.rows[0]["values"]["test7"], 42)
726-
self.assertEqual(event.rows[0]["values"]["test20"], 84)
711+
if event.table_map[event.table_id].column_name_flag:
712+
self.assertEqual(event.rows[0]["values"]["test"], None)
713+
self.assertEqual(event.rows[0]["values"]["test2"], -128)
714+
self.assertEqual(event.rows[0]["values"]["test3"], None)
715+
self.assertEqual(event.rows[0]["values"]["test7"], 42)
716+
self.assertEqual(event.rows[0]["values"]["test20"], 84)
727717

728718
def test_encoding_latin1(self):
729719
db = copy.copy(self.database)
@@ -740,7 +730,8 @@ def test_encoding_latin1(self):
740730
)
741731
insert_query = b"INSERT INTO test VALUES('" + string.encode("latin-1") + b"');"
742732
event = self.create_and_insert_value(create_query, insert_query)
743-
self.assertEqual(event.rows[0]["values"]["test"], string)
733+
if event.table_map[event.table_id].column_name_flag:
734+
self.assertEqual(event.rows[0]["values"]["test"], string)
744735

745736
def test_encoding_utf8(self):
746737
if platform.python_version_tuple()[0] == "2":
@@ -754,7 +745,8 @@ def test_encoding_utf8(self):
754745
insert_query = b"INSERT INTO test VALUES('" + string.encode("utf-8") + b"')"
755746

756747
event = self.create_and_insert_value(create_query, insert_query)
757-
self.assertMultiLineEqual(event.rows[0]["values"]["test"], string)
748+
if event.table_map[event.table_id].column_name_flag:
749+
self.assertMultiLineEqual(event.rows[0]["values"]["test"], string)
758750

759751
def test_zerofill(self):
760752
create_query = "CREATE TABLE test ( \
@@ -768,11 +760,12 @@ def test_zerofill(self):
768760
"INSERT INTO test (test, test2, test3, test4, test5) VALUES(1, 1, 1, 1, 1)"
769761
)
770762
event = self.create_and_insert_value(create_query, insert_query)
771-
self.assertEqual(event.rows[0]["values"]["test"], "001")
772-
self.assertEqual(event.rows[0]["values"]["test2"], "00001")
773-
self.assertEqual(event.rows[0]["values"]["test3"], "00000001")
774-
self.assertEqual(event.rows[0]["values"]["test4"], "0000000001")
775-
self.assertEqual(event.rows[0]["values"]["test5"], "00000000000000000001")
763+
if event.table_map[event.table_id].column_name_flag:
764+
self.assertEqual(event.rows[0]["values"]["test"], "001")
765+
self.assertEqual(event.rows[0]["values"]["test2"], "00001")
766+
self.assertEqual(event.rows[0]["values"]["test3"], "00000001")
767+
self.assertEqual(event.rows[0]["values"]["test4"], "0000000001")
768+
self.assertEqual(event.rows[0]["values"]["test5"], "00000000000000000001")
776769

777770
def test_partition_id(self):
778771
if not self.isMySQL80AndMore():

0 commit comments

Comments
 (0)