Test mixed unicode/binary arguments in executemany.
(self)
| 424 | self.assertEqual(cur.fetchone(), ("c", "\u0430")) |
| 425 | |
| 426 | def test_issue_364(self): |
| 427 | """Test mixed unicode/binary arguments in executemany.""" |
| 428 | conn = pymysql.connect(charset="utf8mb4", **self.databases[0]) |
| 429 | self.safe_create_table( |
| 430 | conn, |
| 431 | "issue364", |
| 432 | "create table issue364 (value_1 binary(3), value_2 varchar(3)) " |
| 433 | "engine=InnoDB default charset=utf8mb4", |
| 434 | ) |
| 435 | |
| 436 | sql = "insert into issue364 (value_1, value_2) values (_binary %s, %s)" |
| 437 | usql = "insert into issue364 (value_1, value_2) values (_binary %s, %s)" |
| 438 | values = [pymysql.Binary(b"\x00\xff\x00"), "\xe4\xf6\xfc"] |
| 439 | |
| 440 | # test single insert and select |
| 441 | cur = conn.cursor() |
| 442 | cur.execute(sql, args=values) |
| 443 | cur.execute("select * from issue364") |
| 444 | self.assertEqual(cur.fetchone(), tuple(values)) |
| 445 | |
| 446 | # test single insert unicode query |
| 447 | cur.execute(usql, args=values) |
| 448 | |
| 449 | # test multi insert and select |
| 450 | cur.executemany(sql, args=(values, values, values)) |
| 451 | cur.execute("select * from issue364") |
| 452 | for row in cur.fetchall(): |
| 453 | self.assertEqual(row, tuple(values)) |
| 454 | |
| 455 | # test multi insert with unicode query |
| 456 | cur.executemany(usql, args=(values, values, values)) |
| 457 | |
| 458 | def test_issue_363(self): |
| 459 | """Test binary / geometry types.""" |
nothing calls this directly
no test coverage detected