MCPcopy Create free account
hub / github.com/PyMySQL/PyMySQL / test_issue_364

Method test_issue_364

pymysql/tests/test_issues.py:423–453  ·  view source on GitHub ↗

Test mixed unicode/binary arguments in executemany.

(self)

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 7

safe_create_tableMethod · 0.80
cursorMethod · 0.80
executeMethod · 0.80
executemanyMethod · 0.80
connectMethod · 0.45
fetchoneMethod · 0.45
fetchallMethod · 0.45

Tested by

no test coverage detected