diff options
Diffstat (limited to 'test/ext/mypy/plugin_files/relationship_err2.py')
| -rw-r--r-- | test/ext/mypy/plugin_files/relationship_err2.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/ext/mypy/plugin_files/relationship_err2.py b/test/ext/mypy/plugin_files/relationship_err2.py new file mode 100644 index 000000000..4057baeb3 --- /dev/null +++ b/test/ext/mypy/plugin_files/relationship_err2.py @@ -0,0 +1,32 @@ +from typing import Set + +from sqlalchemy import Column +from sqlalchemy import ForeignKey +from sqlalchemy import Integer +from sqlalchemy import String +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import relationship + +Base = declarative_base() + + +class B(Base): + __tablename__ = "b" + id = Column(Integer, primary_key=True) + a_id: int = Column(ForeignKey("a.id")) + data = Column(String) + + +class A(Base): + __tablename__ = "a" + + id = Column(Integer, primary_key=True) + data = Column(String) + bs = relationship(B, uselist=True) + + +# EXPECTED_MYPY: List item 1 has incompatible type "A"; expected "B" +a1 = A(bs=[B(data="b"), A()]) + +# EXPECTED_MYPY: Incompatible types in assignment (expression has type "List[B]", variable has type "Set[B]") # noqa +x: Set[B] = a1.bs |
