summaryrefslogtreecommitdiff
path: root/test/sql
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2021-03-31 00:13:56 +0000
committerGerrit Code Review <gerrit@ci3.zzzcomputing.com>2021-03-31 00:13:56 +0000
commitcf92a8eadad058aff2cce44cecdb5fd76ac97379 (patch)
tree188a1009ed6191e76ec1f9aa624bcd78f89a28b8 /test/sql
parent214e62aeb7bf7248767ad9e69f094ea69718180b (diff)
parent3df6a3f1fbb589110c3ef3f344758bb11d3dc3df (diff)
downloadsqlalchemy-cf92a8eadad058aff2cce44cecdb5fd76ac97379.tar.gz
Merge "Repair exception handling in CursorResult"
Diffstat (limited to 'test/sql')
-rw-r--r--test/sql/test_resultset.py31
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"