Skip to content

Commit 0bae7cd

Browse files
committed
Added another test for multiple inheritance
This test ensures that the __tablename__ is set correctly according to the inheritance order of the mixins.
1 parent 4e052b9 commit 0bae7cd

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

tests/test_declarative.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,3 +277,22 @@ class MyTableWithName(MyTableNameMixin, db.Model):
277277

278278
assert MyTableWithoutName.__table__.name == 'mytablewithoutname'
279279
assert MyTableWithName.__table__.name == 'manually_overwritten_name'
280+
281+
282+
async def test_multiple_inheritance_overwrite_declared_table_name():
283+
class MyTableNameMixin:
284+
@db.declared_attr
285+
def __tablename__(cls):
286+
return cls.__name__.lower()
287+
288+
class AnotherTableNameMixin:
289+
__tablename__ = "static_table_name"
290+
291+
class MyTableWithoutName(AnotherTableNameMixin, MyTableNameMixin, db.Model):
292+
id = db.Column(db.Integer, primary_key=True)
293+
294+
class MyOtherTableWithoutName(MyTableNameMixin, AnotherTableNameMixin, db.Model):
295+
id = db.Column(db.Integer, primary_key=True)
296+
297+
assert MyTableWithoutName.__table__.name == 'static_table_name'
298+
assert MyOtherTableWithoutName.__table__.name == 'myothertablewithoutname'

0 commit comments

Comments
 (0)