summaryrefslogtreecommitdiff
path: root/test/sql/test_returning.py
diff options
context:
space:
mode:
authorFederico Caselli <cfederico87@gmail.com>2020-08-22 00:30:44 +0200
committerMike Bayer <mike_mp@zzzcomputing.com>2020-08-22 12:46:12 -0400
commit9ab4da7018eae8fc86430c24a38f8ffb0a5951ab (patch)
treed6f9e401cbc24a3beb11a9fec56dd17f89cfe6fe /test/sql/test_returning.py
parent317f2e1be2b06cdc12bc84510eb743d9752763dd (diff)
downloadsqlalchemy-9ab4da7018eae8fc86430c24a38f8ffb0a5951ab.tar.gz
Updates for MariaDB sequences
MariaDB should not run a Sequence if it has optional=True. Additionally, rework the rules in crud.py to accommodate the new combination MariaDB brings us, which is a dialect that supports both cursor.lastrowid, explicit sequences, *and* no support for returning. Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com> Fixes: #5528 Change-Id: I9a8ea69a34983affa95dfd22186e2908fdf0d58c
Diffstat (limited to 'test/sql/test_returning.py')
-rw-r--r--test/sql/test_returning.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/sql/test_returning.py b/test/sql/test_returning.py
index 7d60dd475..20aa1fb3a 100644
--- a/test/sql/test_returning.py
+++ b/test/sql/test_returning.py
@@ -430,6 +430,30 @@ class ReturnDefaultsTest(fixtures.TablesTest):
[None],
)
+ def test_insert_sql_expr(self, connection):
+ from sqlalchemy import literal
+
+ t1 = self.tables.t1
+ result = connection.execute(
+ t1.insert().return_defaults().values(insdef=literal(10) + 5)
+ )
+
+ eq_(
+ result.returned_defaults._mapping,
+ {"id": 1, "data": None, "insdef": 15, "upddef": None},
+ )
+
+ def test_update_sql_expr(self, connection):
+ from sqlalchemy import literal
+
+ t1 = self.tables.t1
+ connection.execute(t1.insert().values(upddef=1))
+ result = connection.execute(
+ t1.update().values(upddef=literal(10) + 5).return_defaults()
+ )
+
+ eq_(result.returned_defaults._mapping, {"upddef": 15})
+
def test_insert_non_default_plus_default(self, connection):
t1 = self.tables.t1
result = connection.execute(