def getTestCaseArgsForGroup(self, idSchedGroup, cMax=None): """ Gets the testcase argument variation w/ testgroup+priority for the given scheduling group. Returns an array TestCaseArgsData instance (sorted by group and variation id) with an extra iSchedPriority member. May raise exception on DB error or if the result exceeds cMax. """ self._oDb.execute( 'SELECT TestGroupMembers.idTestGroup, TestGroupMembers.iSchedPriority, TestCaseArgs.*\n' 'FROM SchedGroupMembers, TestGroups, TestGroupMembers, TestCaseArgs, TestCases\n' 'WHERE SchedGroupMembers.idSchedGroup = %s\n' ' AND SchedGroupMembers.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND TestGroups.idTestGroup = SchedGroupMembers.idTestGroup\n' ' AND TestGroups.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND TestGroupMembers.idTestGroup = TestGroups.idTestGroup\n' ' AND TestGroupMembers.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND TestCaseArgs.idTestCase = TestGroupMembers.idTestCase\n' ' AND TestCaseArgs.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND ( TestGroupMembers.aidTestCaseArgs is NULL\n' ' OR TestCaseArgs.idTestCaseArgs = ANY(TestGroupMembers.aidTestCaseArgs) )\n' ' AND TestCases.idTestCase = TestCaseArgs.idTestCase\n' ' AND TestCases.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND TestCases.fEnabled = TRUE\n' 'ORDER BY TestGroupMembers.idTestGroup, TestGroupMembers.idTestCase, TestCaseArgs.idTestCaseArgs\n', (idSchedGroup, )) if cMax is not None and self._oDb.getRowCount() > cMax: raise TMExceptionBase( 'Too many argument variations for scheduling group %s: %s, max %s' % ( idSchedGroup, cMax, self._oDb.getRowCount(), )) aoRet = [] for aoRow in self._oDb.fetchAll(): oVariation = TestCaseArgsData().initFromDbRow(aoRow[2:]) oVariation.idTestGroup = aoRow[0] oVariation.iSchedPriority = aoRow[1] aoRet.append(oVariation) return aoRet
def getTestCaseArgsForGroup(self, idSchedGroup, cMax = None): """ Gets the testcase argument variation w/ testgroup+priority for the given scheduling group. Returns an array TestCaseArgsData instance (sorted by group and variation id) with an extra iSchedPriority member. May raise exception on DB error or if the result exceeds cMax. """ self._oDb.execute('SELECT TestGroupMembers.idTestGroup, TestGroupMembers.iSchedPriority, TestCaseArgs.*\n' 'FROM SchedGroupMembers, TestGroups, TestGroupMembers, TestCaseArgs, TestCases\n' 'WHERE SchedGroupMembers.idSchedGroup = %s\n' ' AND SchedGroupMembers.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND TestGroups.idTestGroup = SchedGroupMembers.idTestGroup\n' ' AND TestGroups.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND TestGroupMembers.idTestGroup = TestGroups.idTestGroup\n' ' AND TestGroupMembers.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND TestCaseArgs.idTestCase = TestGroupMembers.idTestCase\n' ' AND TestCaseArgs.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND ( TestGroupMembers.aidTestCaseArgs is NULL\n' ' OR TestCaseArgs.idTestCaseArgs = ANY(TestGroupMembers.aidTestCaseArgs) )\n' ' AND TestCases.idTestCase = TestCaseArgs.idTestCase\n' ' AND TestCases.tsExpire = \'infinity\'::TIMESTAMP\n' ' AND TestCases.fEnabled = TRUE\n' 'ORDER BY TestGroupMembers.idTestGroup, TestGroupMembers.idTestCase, TestCaseArgs.idTestCaseArgs\n' , (idSchedGroup,)); if cMax is not None and self._oDb.getRowCount() > cMax: raise TMExceptionBase('Too many argument variations for scheduling group %s: %s, max %s' % (idSchedGroup, cMax, self._oDb.getRowCount(),)); aoRet = []; for aoRow in self._oDb.fetchAll(): oVariation = TestCaseArgsData().initFromDbRow(aoRow[2:]); oVariation.idTestGroup = aoRow[0]; oVariation.iSchedPriority = aoRow[1]; aoRet.append(oVariation); return aoRet;