summaryrefslogtreecommitdiff
path: root/test/sql
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2023-04-27 00:13:00 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2023-04-27 00:13:00 +0000
commit11535752b94acb41ff684cf8d9c745038addc447 (patch)
treefec970fe35228d33c45280ad558ed9bc251b5208 /test/sql
parentc89c2b3d9a18bd0eb4c8ace50ef875101c9f4b70 (diff)
parent8ec396873c9bbfcc4416e55b5f9d8653554a1df0 (diff)
downloadsqlalchemy-11535752b94acb41ff684cf8d9c745038addc447.tar.gz
Merge "support parameters in all ORM insert modes" into main
Diffstat (limited to 'test/sql')
-rw-r--r--test/sql/test_utils.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/sql/test_utils.py b/test/sql/test_utils.py
index 61777def5..615995c73 100644
--- a/test/sql/test_utils.py
+++ b/test/sql/test_utils.py
@@ -1,5 +1,6 @@
from itertools import zip_longest
+from sqlalchemy import bindparam
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import MetaData
@@ -7,6 +8,7 @@ from sqlalchemy import select
from sqlalchemy import String
from sqlalchemy import Table
from sqlalchemy import testing
+from sqlalchemy import TypeDecorator
from sqlalchemy.sql import base as sql_base
from sqlalchemy.sql import coercions
from sqlalchemy.sql import column
@@ -18,6 +20,8 @@ from sqlalchemy.testing import assert_raises_message
from sqlalchemy.testing import eq_
from sqlalchemy.testing import expect_raises_message
from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import is_
+from sqlalchemy.testing import is_not_none
class MiscTest(fixtures.TestBase):
@@ -41,6 +45,28 @@ class MiscTest(fixtures.TestBase):
eq_(set(sql_util.find_tables(subset_select)), {common})
+ @testing.variation("has_cache_key", [True, False])
+ def test_get_embedded_bindparams(self, has_cache_key):
+ bp = bindparam("x")
+
+ if not has_cache_key:
+
+ class NotCacheable(TypeDecorator):
+ impl = String
+ cache_ok = False
+
+ stmt = select(column("q", NotCacheable())).where(column("y") == bp)
+
+ else:
+ stmt = select(column("q")).where(column("y") == bp)
+
+ eq_(stmt._get_embedded_bindparams(), [bp])
+
+ if not has_cache_key:
+ is_(stmt._generate_cache_key(), None)
+ else:
+ is_not_none(stmt._generate_cache_key())
+
def test_find_tables_aliases(self):
metadata = MetaData()
common = Table(