diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2021-03-31 00:13:56 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2021-03-31 00:13:56 +0000 |
| commit | cf92a8eadad058aff2cce44cecdb5fd76ac97379 (patch) | |
| tree | 188a1009ed6191e76ec1f9aa624bcd78f89a28b8 /test/sql | |
| parent | 214e62aeb7bf7248767ad9e69f094ea69718180b (diff) | |
| parent | 3df6a3f1fbb589110c3ef3f344758bb11d3dc3df (diff) | |
| download | sqlalchemy-cf92a8eadad058aff2cce44cecdb5fd76ac97379.tar.gz | |
Merge "Repair exception handling in CursorResult"
Diffstat (limited to 'test/sql')
| -rw-r--r-- | test/sql/test_resultset.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/sql/test_resultset.py b/test/sql/test_resultset.py index 5439d63b5..67bd7785b 100644 --- a/test/sql/test_resultset.py +++ b/test/sql/test_resultset.py @@ -43,6 +43,7 @@ from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import assertions from sqlalchemy.testing import engines from sqlalchemy.testing import eq_ +from sqlalchemy.testing import expect_raises_message from sqlalchemy.testing import fixtures from sqlalchemy.testing import in_ from sqlalchemy.testing import is_ @@ -1476,6 +1477,36 @@ class CursorResultTest(fixtures.TablesTest): finally: r.close() + @testing.requires.dbapi_lastrowid + def test_lastrowid(self, connection): + users = self.tables.users + + r = connection.execute( + users.insert(), dict(user_id=1, user_name="Test") + ) + eq_(r.lastrowid, r.context.get_lastrowid()) + + def test_raise_errors(self, connection): + users = self.tables.users + + class Wrapper: + def __init__(self, context): + self.context = context + + def __getattr__(self, name): + if name in ("rowcount", "get_lastrowid"): + raise Exception("canary") + return getattr(self.context, name) + + r = connection.execute( + users.insert(), dict(user_id=1, user_name="Test") + ) + r.context = Wrapper(r.context) + with expect_raises_message(Exception, "canary"): + r.rowcount + with expect_raises_message(Exception, "canary"): + r.lastrowid + class KeyTargetingTest(fixtures.TablesTest): run_inserts = "once" |
