Author: phd
Date: 2005-08-12 07:59:51 +0000 (Fri, 12 Aug 2005)
New Revision: 902
Modified:
trunk/SQLObject/sqlobject/inheritance/iteration.py
trunk/SQLObject/sqlobject/inheritance/tests/test_deep_inheritance.py
Log:
Another patch for deep inheritance from Evandro Vale Miquelito; more tests.
Modified: trunk/SQLObject/sqlobject/inheritance/iteration.py
===================================================================
--- trunk/SQLObject/sqlobject/inheritance/iteration.py 2005-08-11 22:35:39 UTC (rev 901)
+++ trunk/SQLObject/sqlobject/inheritance/iteration.py 2005-08-12 07:59:51 UTC (rev 902)
@@ -7,22 +7,8 @@
defaultArraySize = 10000
def __init__(self, dbconn, rawconn, select, keepConnection=False):
- # unless we do a lazy select, replace sourceClass
- # with the root of the inheritance tree (children
- # will be attached by sourceClass.get)
- lazyColumns = select.ops.get('lazyColumns', False)
- sourceClass = select.sourceClass
- if sourceClass._parentClass and not lazyColumns:
- addClauses = []
- while sourceClass._parentClass:
- addClauses.append(sourceClass._parentClass.q.childName
- == sourceClass.__name__)
- sourceClass = sourceClass._parentClass
- select = select.__class__(sourceClass,
- sqlbuilder.AND(select.clause, *addClauses),
- select.clauseTables, **select.ops)
super(InheritableIteration, self).__init__(dbconn, rawconn, select, keepConnection)
- self.lazyColumns = lazyColumns
+ self.lazyColumns = select.ops.get('lazyColumns', False)
self.cursor.arraysize = self.defaultArraySize
self._results = []
# Find the index of the childName column
Modified: trunk/SQLObject/sqlobject/inheritance/tests/test_deep_inheritance.py
===================================================================
--- trunk/SQLObject/sqlobject/inheritance/tests/test_deep_inheritance.py 2005-08-11 22:35:39 UTC (rev 901)
+++ trunk/SQLObject/sqlobject/inheritance/tests/test_deep_inheritance.py 2005-08-12 07:59:51 UTC (rev 902)
@@ -29,5 +29,11 @@
position='Project leader', manager=manager)
person = DIPerson(firstName='Oneof', lastName='Authors', manager=manager)
+ managers = list(DIManager.select())
+ assert len(managers) == 1
+
+ employees = list(DIEmployee.select())
+ assert len(employees) == 2
+
persons = list(DIPerson.select())
assert len(persons) == 3
|