Test iterable as query argument.
(self)
| 396 | cur.execute("drop table if exists test_field_count") |
| 397 | |
| 398 | def test_issue_321(self): |
| 399 | """Test iterable as query argument.""" |
| 400 | conn = pymysql.connect(charset="utf8", **self.databases[0]) |
| 401 | self.safe_create_table( |
| 402 | conn, |
| 403 | "issue321", |
| 404 | "create table issue321 (value_1 varchar(1), value_2 varchar(1))", |
| 405 | ) |
| 406 | |
| 407 | sql_insert = "insert into issue321 (value_1, value_2) values (%s, %s)" |
| 408 | sql_dict_insert = ( |
| 409 | "insert into issue321 (value_1, value_2) values (%(value_1)s, %(value_2)s)" |
| 410 | ) |
| 411 | sql_select = "select * from issue321 where value_1 in %s and value_2=%s" |
| 412 | data = [ |
| 413 | [("a",), "\u0430"], |
| 414 | [["b"], "\u0430"], |
| 415 | {"value_1": [["c"]], "value_2": "\u0430"}, |
| 416 | ] |
| 417 | cur = conn.cursor() |
| 418 | self.assertEqual(cur.execute(sql_insert, data[0]), 1) |
| 419 | self.assertEqual(cur.execute(sql_insert, data[1]), 1) |
| 420 | self.assertEqual(cur.execute(sql_dict_insert, data[2]), 1) |
| 421 | self.assertEqual(cur.execute(sql_select, [("a", "b", "c"), "\u0430"]), 3) |
| 422 | self.assertEqual(cur.fetchone(), ("a", "\u0430")) |
| 423 | self.assertEqual(cur.fetchone(), ("b", "\u0430")) |
| 424 | self.assertEqual(cur.fetchone(), ("c", "\u0430")) |
| 425 | |
| 426 | def test_issue_364(self): |
| 427 | """Test mixed unicode/binary arguments in executemany.""" |
nothing calls this directly
no test coverage detected