diff options
Diffstat (limited to 'test/ext')
| -rw-r--r-- | test/ext/mypy/plain_files/dataclass_transforms_one.py | 50 | ||||
| -rw-r--r-- | test/ext/mypy/plain_files/pep681.py | 32 |
2 files changed, 50 insertions, 32 deletions
diff --git a/test/ext/mypy/plain_files/dataclass_transforms_one.py b/test/ext/mypy/plain_files/dataclass_transforms_one.py new file mode 100644 index 000000000..b7b88590f --- /dev/null +++ b/test/ext/mypy/plain_files/dataclass_transforms_one.py @@ -0,0 +1,50 @@ +from __future__ import annotations + +from typing import Optional + +from sqlalchemy.orm import column_property +from sqlalchemy.orm import DeclarativeBase +from sqlalchemy.orm import Mapped +from sqlalchemy.orm import mapped_column +from sqlalchemy.orm import MappedAsDataclass +from sqlalchemy.orm import query_expression + + +class Base(DeclarativeBase): + pass + + +class TestInitialSupport(Base): + __tablename__ = "a" + + id: Mapped[int] = mapped_column(primary_key=True, init=False) + data: Mapped[str] + x: Mapped[Optional[int]] = mapped_column(default=None) + y: Mapped[Optional[int]] = mapped_column(kw_only=True) + + +tis = TestInitialSupport(data="some data", y=5) + +# EXPECTED_TYPE: str +reveal_type(tis.data) + +# EXPECTED_RE_TYPE: .*Union\[builtins.int, None\] +reveal_type(tis.y) + +tis.data = "some other data" + + +class TestTicket9628(MappedAsDataclass, Base): + __tablename__ = "ticket_9628" + + id: Mapped[int] = mapped_column(primary_key=True, init=False) + data: Mapped[str] = mapped_column() + + d2: Mapped[str] = column_property(data + "Asdf") + d3: Mapped[str] = query_expression(data + "Asdf") + + +# d2 and d3 are not required, as these have init=False. We omit +# them from dataclass transforms entirely as these are never intended +# to be writeable fields in a 2.0 declarative mapping +t9628 = TestTicket9628(data="asf") diff --git a/test/ext/mypy/plain_files/pep681.py b/test/ext/mypy/plain_files/pep681.py deleted file mode 100644 index caa219d78..000000000 --- a/test/ext/mypy/plain_files/pep681.py +++ /dev/null @@ -1,32 +0,0 @@ -from __future__ import annotations - -from typing import Optional - -from sqlalchemy.orm import DeclarativeBase -from sqlalchemy.orm import Mapped -from sqlalchemy.orm import mapped_column -from sqlalchemy.orm import MappedAsDataclass - - -class Base(MappedAsDataclass, DeclarativeBase): - pass - - -class A(Base): - __tablename__ = "a" - - id: Mapped[int] = mapped_column(primary_key=True, init=False) - data: Mapped[str] - x: Mapped[Optional[int]] = mapped_column(default=None) - y: Mapped[Optional[int]] = mapped_column(kw_only=True) - - -a1 = A(data="some data", y=5) - -# EXPECTED_TYPE: str -reveal_type(a1.data) - -# EXPECTED_RE_TYPE: .*Union\[builtins.int, None\] -reveal_type(a1.y) - -a1.data = "some other data" |
