summaryrefslogtreecommitdiff
path: root/test/ext
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2023-03-04 16:32:17 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2023-03-04 16:32:17 +0000
commitb22dd1ca3e405f62002da65605055da102157b50 (patch)
treea1d1f84d299d7277cf130f946f2157c841402f10 /test/ext
parentb7ff13a6d70ce2990892c08947cf12131d2213cf (diff)
parent45f7b3b8ac9a1b393b45f2f199a88c3bb0c86705 (diff)
downloadsqlalchemy-b22dd1ca3e405f62002da65605055da102157b50.tar.gz
Merge "TextualSelect is ReturnsRowsRole" into main
Diffstat (limited to 'test/ext')
-rw-r--r--test/ext/mypy/plain_files/typed_queries.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/ext/mypy/plain_files/typed_queries.py b/test/ext/mypy/plain_files/typed_queries.py
index 3e67a7132..2de565e6a 100644
--- a/test/ext/mypy/plain_files/typed_queries.py
+++ b/test/ext/mypy/plain_files/typed_queries.py
@@ -2,13 +2,19 @@ from __future__ import annotations
from typing import Tuple
+from sqlalchemy import Column
from sqlalchemy import column
from sqlalchemy import create_engine
from sqlalchemy import delete
from sqlalchemy import func
from sqlalchemy import insert
+from sqlalchemy import Integer
+from sqlalchemy import MetaData
from sqlalchemy import Select
from sqlalchemy import select
+from sqlalchemy import String
+from sqlalchemy import Table
+from sqlalchemy import text
from sqlalchemy import update
from sqlalchemy.orm import aliased
from sqlalchemy.orm import DeclarativeBase
@@ -29,6 +35,13 @@ class User(Base):
data: Mapped[str]
+user_table = Table(
+ "user",
+ MetaData(),
+ Column("id", Integer, primary_key=True),
+ Column("name", String, primary_key=True),
+)
+
session = Session()
e = create_engine("sqlite://")
@@ -443,3 +456,29 @@ def t_dml_delete() -> None:
# EXPECTED_TYPE: Result[Tuple[int, str]]
reveal_type(r1)
+
+
+def t_from_statement() -> None:
+
+ t = text("select * from user")
+
+ # EXPECTED_TYPE: TextClause
+ reveal_type(t)
+
+ select(User).from_statement(t)
+
+ ts = text("select * from user").columns(User.id, User.name)
+
+ # EXPECTED_TYPE: TextualSelect
+ reveal_type(ts)
+
+ select(User).from_statement(ts)
+
+ ts2 = text("select * from user").columns(
+ user_table.c.id, user_table.c.name
+ )
+
+ # EXPECTED_TYPE: TextualSelect
+ reveal_type(ts2)
+
+ select(User).from_statement(ts2)