| 976 | @testing.fixture() |
| 977 | def run_test(self): |
| 978 | def go(BaseType): |
| 979 | declarative = registry().mapped |
| 980 | |
| 981 | @declarative |
| 982 | @dataclasses.dataclass |
| 983 | class Single(BaseType): |
| 984 | __tablename__ = "single" |
| 985 | __mapper_args__ = dict(polymorphic_identity="type1") |
| 986 | |
| 987 | @declarative |
| 988 | @dataclasses.dataclass |
| 989 | class Joined(Single): |
| 990 | __tablename__ = "joined" |
| 991 | __mapper_args__ = dict(polymorphic_identity="type2") |
| 992 | id = Column(Integer, ForeignKey("single.id"), primary_key=True) |
| 993 | |
| 994 | eq_(Single.__table__.name, "single") |
| 995 | eq_( |
| 996 | list(Single.__table__.c.keys()), |
| 997 | ["type", "id", "value", "timestamp"], |
| 998 | ) |
| 999 | eq_(Single.__table__.kwargs, {"mysql_engine": "InnoDB"}) |
| 1000 | |
| 1001 | eq_(Joined.__table__.name, "joined") |
| 1002 | eq_(list(Joined.__table__.c.keys()), ["id"]) |
| 1003 | eq_(Joined.__table__.kwargs, {"mysql_engine": "InnoDB"}) |
| 1004 | |
| 1005 | yield go |
| 1006 | |