Source code for sqlobject.inheritance.tests.test_inheritance_tree

frompytestimport skip
fromsqlobjectimport StringCol
fromsqlobject.inheritanceimport InheritableSQLObject
fromsqlobject.tests.dbtestimport getConnection, setupClass
########################################
# Inheritance Tree
########################################
[docs] classTree1(InheritableSQLObject): aprop = StringCol(length=10)
[docs] classTree2(Tree1): bprop = StringCol(length=10)
[docs] classTree3(Tree1): cprop = StringCol(length=10)
[docs] classTree4(Tree2): dprop = StringCol(length=10)
[docs] classTree5(Tree2): eprop = StringCol(length=10)
[docs] deftest_tree(): conn = getConnection() if conn.module.__name__ == 'mysql.connector' \ and conn.connector_type == 'mysql.connector-python': skip("connector-python falls into an infinite loop here") setupClass([Tree1, Tree2, Tree3, Tree4, Tree5]) Tree1(aprop='t1') # t1 t2 = Tree2(aprop='t2', bprop='t2') Tree3(aprop='t3', cprop='t3') # t3 t4 = Tree4(aprop='t4', bprop='t4', dprop='t4') t5 = Tree5(aprop='t5', bprop='t5', eprop='t5') # find just the t5 out of childs from Tree2 assert t5 == Tree1.select(Tree2.q.childName == 'Tree5')[0] # t2,t4,t5 are all subclasses of Tree1 with t1 childName of 'Tree2' assert list(Tree1.select( Tree1.q.childName == 'Tree2', orderBy="aprop")) == [t2, t4, t5]