diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2023-03-04 16:32:17 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2023-03-04 16:32:17 +0000 |
| commit | b22dd1ca3e405f62002da65605055da102157b50 (patch) | |
| tree | a1d1f84d299d7277cf130f946f2157c841402f10 /test/ext | |
| parent | b7ff13a6d70ce2990892c08947cf12131d2213cf (diff) | |
| parent | 45f7b3b8ac9a1b393b45f2f199a88c3bb0c86705 (diff) | |
| download | sqlalchemy-b22dd1ca3e405f62002da65605055da102157b50.tar.gz | |
Merge "TextualSelect is ReturnsRowsRole" into main
Diffstat (limited to 'test/ext')
| -rw-r--r-- | test/ext/mypy/plain_files/typed_queries.py | 39 |
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) |
