summaryrefslogtreecommitdiff
path: root/test/ext/mypy/plain_files/orm_config_constructs.py
blob: 4583cdaba2690faf890dce6ee58b26317fce53b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from sqlalchemy import String
from sqlalchemy.orm import column_property
from sqlalchemy.orm import DeclarativeBase
from sqlalchemy.orm import deferred
from sqlalchemy.orm import Mapped
from sqlalchemy.orm import mapped_column
from sqlalchemy.orm import query_expression
from sqlalchemy.orm import validates


class Base(DeclarativeBase):
    pass


class User(Base):
    __tablename__ = "User"

    id: Mapped[int] = mapped_column(primary_key=True)
    name: Mapped[str]

    @validates("name", include_removes=True)
    def validate_name(self, name: str) -> str:
        """test #8577"""
        return name + "hi"

    # test #9536
    _password: Mapped[str] = mapped_column("Password", String)
    password1: Mapped[str] = column_property(
        _password.collate("SQL_Latin1_General_CP1_CS_AS"), deferred=True
    )
    password2: Mapped[str] = deferred(
        _password.collate("SQL_Latin1_General_CP1_CS_AS")
    )
    password3: Mapped[str] = query_expression(
        _password.collate("SQL_Latin1_General_CP1_CS_AS")
    )