MCPcopy
hub / github.com/PyMySQL/PyMySQL / test_issue_364

Method test_issue_364

pymysql/tests/test_issues.py:426–456  ·  view source on GitHub ↗

Test mixed unicode/binary arguments in executemany.

(self)

Source from the content-addressed store, hash-verified

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."""

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