diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-06-11 20:11:05 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-06-11 20:11:05 -0400 |
| commit | 5cc0bb04749922aa13864e495b70b79e8f3fdaf9 (patch) | |
| tree | a342ea82152fd4327354445e958dd13a7caaf690 /test/engine/test_execute.py | |
| parent | 405b00f1de00759b4def7cc893aab9e9eafba63d (diff) | |
| download | sqlalchemy-5cc0bb04749922aa13864e495b70b79e8f3fdaf9.tar.gz | |
- [bug] Fixed bug affecting Py3K whereby
string positional parameters passed to
engine/connection execute() would fail to be
interpreted correctly, due to __iter__
being present on Py3K string.
[ticket:2503]. Also in 0.7.8.
Diffstat (limited to 'test/engine/test_execute.py')
| -rw-r--r-- | test/engine/test_execute.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py index 610f5e42b..7ccd42b73 100644 --- a/test/engine/test_execute.py +++ b/test/engine/test_execute.py @@ -79,6 +79,22 @@ class ExecuteTest(fixtures.TestBase): (6, 'donkey'), (7, 'sally'), ] + for multiparam, param in [ + (("jack", "fred"), {}), + ((["jack", "fred"],), {}) + ]: + res = conn.execute( + "select * from users where user_name=? or " + "user_name=? order by user_id", + *multiparam, **param) + assert res.fetchall() == [ + (1, 'jack'), + (2, 'fred') + ] + res = conn.execute("select * from users where user_name=?", + "jack" + ) + assert res.fetchall() == [(1, 'jack')] conn.execute('delete from users') go(testing.db) @@ -104,6 +120,23 @@ class ExecuteTest(fixtures.TestBase): res = conn.execute('select * from users order by user_id') assert res.fetchall() == [(1, 'jack'), (2, 'ed'), (3, 'horse'), (4, 'sally'), (5, None)] + for multiparam, param in [ + (("jack", "ed"), {}), + ((["jack", "ed"],), {}) + ]: + res = conn.execute( + "select * from users where user_name=%s or " + "user_name=%s order by user_id", + *multiparam, **param) + assert res.fetchall() == [ + (1, 'jack'), + (2, 'ed') + ] + res = conn.execute("select * from users where user_name=%s", + "jack" + ) + assert res.fetchall() == [(1, 'jack')] + conn.execute('delete from users') go(testing.db) conn = testing.db.connect() |
