summaryrefslogtreecommitdiff
path: root/test/ext/mypy/plugin_files/typing_err2.py
blob: 5b8dfe4af0284b6dff7b58ef5138c221e6d7391c (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
37
38
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import String
from sqlalchemy.orm import declared_attr
from sqlalchemy.orm import registry
from sqlalchemy.orm import relationship
from sqlalchemy.orm import RelationshipProperty

reg: registry = registry()


@reg.mapped
class Foo:
    id: int = Column(Integer())

    # EXPECTED: Can't infer type from @declared_attr on function 'name'; # noqa
    @declared_attr
    # EXPECTED: Column type should be a TypeEngine subclass not 'builtins.str'
    def name(cls) -> Column[str]:
        return Column(String)

    # EXPECTED: Left hand assignment 'other_name: "Column[String]"' not compatible with ORM mapped expression of type "Mapped[str]" # noqa
    other_name: Column[String] = Column(String)

    # EXPECTED: Can't infer type from @declared_attr on function 'third_name';
    @declared_attr
    # EXPECTED_MYPY: Missing type parameters for generic type "Column"
    def third_name(cls) -> Column:
        return Column(String)

    # EXPECTED: Can't infer type from @declared_attr on function 'some_relationship' # noqa
    @declared_attr
    # EXPECTED_MYPY: Missing type parameters for generic type "RelationshipProperty"
    def some_relationship(cls) -> RelationshipProperty:
        return relationship("Bar")


Foo(name="x")