Skip to content

Commit

Permalink
add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Mehdi committed Feb 10, 2019
1 parent fe87ac0 commit 6c726f8
Showing 1 changed file with 90 additions and 0 deletions.
90 changes: 90 additions & 0 deletions test/test-data/sqlalchemy-plugin-features.test
Original file line number Diff line number Diff line change
Expand Up @@ -273,3 +273,93 @@ class M2(M1):
Base = declarative_base(cls=(M1, M2)) # E: Not able to calculate MRO for declarative base
reveal_type(Base) # E: Revealed type is 'Any'
[out]

[case testRelationshipIsGuessed]
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Parent(Base):
__tablename__ = 'parents'
id = Column(Integer, primary_key=True)
name = Column(String)

children = relationship("Child")

class Child(Base):
__tablename__ = 'children'
id = Column(Integer, primary_key=True)
name = Column(String)
parent_id = Column(Integer, ForeignKey(Parent.id))

parent = relationship(Parent)

child: Child
parent: Parent

reveal_type(child.parent) # E: Revealed type is 'main.Parent*'
reveal_type(parent.children) # E: Revealed type is 'typing.Iterable*[main.Child]'

[out]

[case testRelationshipIsGuessed2]
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Parent(Base):
__tablename__ = 'parents'
id = Column(Integer, primary_key=True)
name = Column(String)

children = relationship("Child")

class Child(Base):
__tablename__ = 'children'
id = Column(Integer, primary_key=True)
name = Column(String)
parent_id = Column(Integer, ForeignKey("parents.id"))

parent = relationship(Parent)

child: Child
parent: Parent

reveal_type(child.parent) # E: Revealed type is 'main.Parent*'
reveal_type(parent.children) # E: Revealed type is 'typing.Iterable*[main.Child]'

[out]

[case testRelationshipIsGuessed3]
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Parent(Base):
__tablename__ = 'parents'
id = Column(Integer, primary_key=True)
name = Column(String)

children = relationship("Child")

class Child(Base):
__tablename__ = 'children'
id = Column(Integer, primary_key=True)
name = Column(String)
parent_id = Column(Integer, ForeignKey("other_parents.id"))

parent = relationship(Parent)

child: Child
parent: Parent

reveal_type(child.parent) # E: Revealed type is 'main.Parent*'
reveal_type(parent.children) # E: Revealed type is 'main.Child*'

[out]

0 comments on commit 6c726f8

Please sign in to comment.