diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2023-04-27 00:13:00 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2023-04-27 00:13:00 +0000 |
| commit | 11535752b94acb41ff684cf8d9c745038addc447 (patch) | |
| tree | fec970fe35228d33c45280ad558ed9bc251b5208 /test/sql | |
| parent | c89c2b3d9a18bd0eb4c8ace50ef875101c9f4b70 (diff) | |
| parent | 8ec396873c9bbfcc4416e55b5f9d8653554a1df0 (diff) | |
| download | sqlalchemy-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.py | 26 |
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( |
