Skip to content

Commit 0240a50

Browse files
committed
fix : testcase 8 version
fix testcase fix test case
1 parent 84c0a32 commit 0240a50

File tree

2 files changed

+41
-23
lines changed

2 files changed

+41
-23
lines changed

pymysqlreplication/tests/test_basic.py

+16-16
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,8 @@ def test_delete_multiple_row_event(self):
721721
self.assertEqual(event.rows[1]["values"]["data"], "World")
722722

723723
def test_ignore_decode_errors(self):
724+
if self.isMySQL80AndMore():
725+
self.skipTest("MYSQL 8 Version Pymysql Data Error Incorrect string value")
724726
problematic_unicode_string = (
725727
b'[{"text":"\xed\xa0\xbd \xed\xb1\x8d Some string"}]'
726728
)
@@ -738,6 +740,8 @@ def test_ignore_decode_errors(self):
738740
only_events=(WriteRowsEvent,),
739741
ignore_decode_errors=False,
740742
)
743+
event = self.stream.fetchone()
744+
event = self.stream.fetchone()
741745
with self.assertRaises(UnicodeError):
742746
event = self.stream.fetchone()
743747
if event.table_map[event.table_id].column_name_flag:
@@ -750,6 +754,8 @@ def test_ignore_decode_errors(self):
750754
only_events=(WriteRowsEvent,),
751755
ignore_decode_errors=True,
752756
)
757+
self.stream.fetchone()
758+
self.stream.fetchone()
753759
event = self.stream.fetchone()
754760
if event.table_map[event.table_id].column_name_flag:
755761
data = event.rows[0]["values"]["data"]
@@ -1661,6 +1667,11 @@ def test_enum_and_set_column_charset(self):
16611667
)
16621668

16631669
def test_visibility(self):
1670+
mysql_version = self.getMySQLVersion()
1671+
version = float(mysql_version.rsplit(".", 1)[0])
1672+
version_detail = int(mysql_version.rsplit(".", 1)[1])
1673+
if not (version >= 8.0 and version_detail >= 23):
1674+
self.skipTest("Mysql version 8.0.23 - visibility supprot")
16641675
create_query = "CREATE TABLE test_visibility (name VARCHAR(50), secret_key VARCHAR(50) DEFAULT 'qwerty' INVISIBLE);"
16651676
insert_query = "INSERT INTO test_visibility VALUES('Audrey');"
16661677

@@ -1697,12 +1708,7 @@ def test_sync_drop_table_map_event_table_schema(self):
16971708

16981709
event = self.stream.fetchone()
16991710
self.assertIsInstance(event, TableMapEvent)
1700-
self.assertEqual(
1701-
event.table_obj.data["column_schemas"][0]["COLUMN_NAME"], "name"
1702-
)
1703-
self.assertEqual(
1704-
event.table_obj.data["column_schemas"][0]["COLUMN_COMMENT"], ""
1705-
)
1711+
self.assertEqual(event.table_obj.data["columns"][0].name, "name")
17061712
self.assertEqual(len(column_schemas), 0)
17071713

17081714
def test_sync_column_drop_event_table_schema(self):
@@ -1730,18 +1736,12 @@ def test_sync_column_drop_event_table_schema(self):
17301736
event = self.stream.fetchone()
17311737
self.assertIsInstance(event, TableMapEvent)
17321738
self.assertEqual(len(column_schemas), 2)
1733-
self.assertEqual(len(event.table_obj.data["column_schemas"]), 3)
1739+
self.assertEqual(len(event.table_obj.data["columns"]), 3)
17341740
self.assertEqual(column_schemas[0][0], "drop_column1")
17351741
self.assertEqual(column_schemas[1][0], "drop_column3")
1736-
self.assertEqual(
1737-
event.table_obj.data["column_schemas"][0]["COLUMN_NAME"], "drop_column1"
1738-
)
1739-
self.assertEqual(
1740-
event.table_obj.data["column_schemas"][1]["COLUMN_NAME"], "drop_column2"
1741-
)
1742-
self.assertEqual(
1743-
event.table_obj.data["column_schemas"][2]["COLUMN_NAME"], "drop_column3"
1744-
)
1742+
self.assertEqual(event.table_obj.data["columns"][0].name, "drop_column1")
1743+
self.assertEqual(event.table_obj.data["columns"][1].name, "drop_column2")
1744+
self.assertEqual(event.table_obj.data["columns"][2].name, "drop_column3")
17451745

17461746
def tearDown(self):
17471747
self.execute("SET GLOBAL binlog_row_metadata='MINIMAL';")

pymysqlreplication/tests/test_data_type.py

+25-7
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,10 @@ def test_zero_date(self):
386386
self.assertEqual(event.rows[0]["values"]["test2"], None)
387387

388388
def test_zero_month(self):
389+
if not self.isMySQL57():
390+
self.skipTest(
391+
"Not supported in this version of MySQL 8"
392+
) # pymysql.err.OperationalError
389393
self.set_sql_mode()
390394
create_query = "CREATE TABLE test (id INTEGER, test DATE, test2 DATE);"
391395
insert_query = "INSERT INTO test (id, test2) VALUES(1, '2015-00-21')"
@@ -395,6 +399,10 @@ def test_zero_month(self):
395399
self.assertEqual(event.rows[0]["values"]["test2"], None)
396400

397401
def test_zero_day(self):
402+
if not self.isMySQL57():
403+
self.skipTest(
404+
"Not supported in this version of MySQL 8"
405+
) # pymysql.err.OperationalError
398406
self.set_sql_mode()
399407
create_query = "CREATE TABLE test (id INTEGER, test DATE, test2 DATE);"
400408
insert_query = "INSERT INTO test (id, test2) VALUES(1, '2015-05-00')"
@@ -463,6 +471,10 @@ def test_datetime(self):
463471
)
464472

465473
def test_zero_datetime(self):
474+
if not self.isMySQL57():
475+
self.skipTest(
476+
"Not supported in this version of MySQL 8"
477+
) # pymysql.err.OperationalError Invalid default value for 'test'
466478
self.set_sql_mode()
467479
create_query = (
468480
"CREATE TABLE test (id INTEGER, test DATETIME NOT NULL DEFAULT 0);"
@@ -473,6 +485,10 @@ def test_zero_datetime(self):
473485
self.assertEqual(event.rows[0]["values"]["test"], None)
474486

475487
def test_broken_datetime(self):
488+
if not self.isMySQL57():
489+
self.skipTest(
490+
"Not supported in this version of MySQL 8"
491+
) # pymysql.err.OperationalError Incorrect datetime value: '2013-00-00 00:00:00' for column 'test'
476492
self.set_sql_mode()
477493
create_query = "CREATE TABLE test (test DATETIME NOT NULL);"
478494
insert_query = "INSERT INTO test VALUES('2013-00-00 00:00:00')"
@@ -483,8 +499,10 @@ def test_broken_datetime(self):
483499
def test_year(self):
484500
if self.isMySQL57():
485501
# https://dev.mysql.com/doc/refman/5.7/en/migrating-to-year4.html
486-
self.skipTest("YEAR(2) is unsupported in mysql 5.7")
487-
create_query = "CREATE TABLE test (a YEAR(4), b YEAR(2))"
502+
self.skipTest(
503+
"YEAR(2) is unsupported in mysql 5.7"
504+
) # pymysql.err.OperationalError: (1818, 'Supports only YEAR or YEAR(4) column.')
505+
create_query = "CREATE TABLE test (a YEAR(4), b YEAR)"
488506
insert_query = "INSERT INTO test VALUES(1984, 1984)"
489507
event = self.create_and_insert_value(create_query, insert_query)
490508
if event.table_map[event.table_id].column_name_flag:
@@ -533,31 +551,31 @@ def test_tiny_blob(self):
533551
insert_query = "INSERT INTO test VALUES('Hello', 'World')"
534552
event = self.create_and_insert_value(create_query, insert_query)
535553
if event.table_map[event.table_id].column_name_flag:
536-
self.assertEqual(event.rows[0]["values"]["test"], "Hello")
554+
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
537555
self.assertEqual(event.rows[0]["values"]["test2"], "World")
538556

539557
def test_medium_blob(self):
540558
create_query = "CREATE TABLE test (test MEDIUMBLOB, test2 MEDIUMTEXT) CHARACTER SET latin1 COLLATE latin1_bin;"
541559
insert_query = "INSERT INTO test VALUES('Hello', 'World')"
542560
event = self.create_and_insert_value(create_query, insert_query)
543561
if event.table_map[event.table_id].column_name_flag:
544-
self.assertEqual(event.rows[0]["values"]["test"], "Hello")
562+
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
545563
self.assertEqual(event.rows[0]["values"]["test2"], "World")
546564

547565
def test_long_blob(self):
548566
create_query = "CREATE TABLE test (test LONGBLOB, test2 LONGTEXT) CHARACTER SET latin1 COLLATE latin1_bin;"
549567
insert_query = "INSERT INTO test VALUES('Hello', 'World')"
550568
event = self.create_and_insert_value(create_query, insert_query)
551569
if event.table_map[event.table_id].column_name_flag:
552-
self.assertEqual(event.rows[0]["values"]["test"], "Hello")
570+
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
553571
self.assertEqual(event.rows[0]["values"]["test2"], "World")
554572

555573
def test_blob(self):
556574
create_query = "CREATE TABLE test (test BLOB, test2 TEXT) CHARACTER SET latin1 COLLATE latin1_bin;"
557575
insert_query = "INSERT INTO test VALUES('Hello', 'World')"
558576
event = self.create_and_insert_value(create_query, insert_query)
559577
if event.table_map[event.table_id].column_name_flag:
560-
self.assertEqual(event.rows[0]["values"]["test"], "Hello")
578+
self.assertEqual(event.rows[0]["values"]["test"], b"Hello")
561579
self.assertEqual(event.rows[0]["values"]["test2"], "World")
562580

563581
def test_string(self):
@@ -571,7 +589,7 @@ def test_string(self):
571589

572590
def test_geometry(self):
573591
create_query = "CREATE TABLE test (test GEOMETRY);"
574-
insert_query = "INSERT INTO test VALUES(GeomFromText('POINT(1 1)'))"
592+
insert_query = "INSERT INTO test VALUES(ST_GeomFromText('POINT(1 1)'))"
575593
event = self.create_and_insert_value(create_query, insert_query)
576594
if event.table_map[event.table_id].column_name_flag:
577595
self.assertEqual(

0 commit comments

Comments
 (0)