def testFilter(self): """ Test filtering of a set(run) object """ mask = Mask() mask.addRunWithLumiRanges(run=1, lumiList=[[1, 9], [12, 12], [31, 31], [38, 39], [49, 49]]) runs = set() runs.add(Run(1, 148, 166, 185, 195, 203, 212)) newRuns = mask.filterRunLumisByMask(runs = runs) self.assertEqual(len(newRuns), 0) runs = set() runs.add(Run(1, 2, 148, 166, 185, 195, 203, 212)) runs.add(Run(2, 148, 166, 185, 195, 203, 212)) newRuns = mask.filterRunLumisByMask(runs = runs) self.assertEqual(len(newRuns), 1) runs = set() runs.add(Run(1, 2, 148, 166, 185, 195, 203, 212)) newRuns = mask.filterRunLumisByMask(runs = runs) self.assertEqual(len(newRuns), 1) run = newRuns.pop() self.assertEqual(run.run, 1) self.assertEqual(run.lumis, [2])
def testFilter(self): """ Test filtering of a set(run) object """ mask = Mask() mask.addRunWithLumiRanges(run=1, lumiList=[[1, 9], [12, 12], [31, 31], [38, 39], [49, 49]]) runs = set() runs.add(Run(1, 148, 166, 185, 195, 203, 212)) newRuns = mask.filterRunLumisByMask(runs=runs) self.assertEqual(len(newRuns), 0) runs = set() runs.add(Run(1, 2, 148, 166, 185, 195, 203, 212)) runs.add(Run(2, 148, 166, 185, 195, 203, 212)) newRuns = mask.filterRunLumisByMask(runs=runs) self.assertEqual(len(newRuns), 1) runs = set() runs.add(Run(1, 2, 9, 148, 166, 185, 195, 203, 212)) newRuns = mask.filterRunLumisByMask(runs=runs) self.assertEqual(len(newRuns), 1) run = newRuns.pop() self.assertEqual(run.run, 1) self.assertEqual(run.lumis, [2, 9])
def testFilterRealCase(self): """ Test filtering of a set(run) object based on real cases from production """ mask = Mask() mask.addRunWithLumiRanges(run=1, lumiList=[[9, 9], [8, 8], [3, 4], [7, 7]]) mask.setMaxAndSkipLumis(0, 7) mask.setMaxAndSkipRuns(0, 1) runs = set() runs.add(Run(1, *[(9, 500), (10, 500)])) runs.add(Run(1, *[(3, 500), (4, 500)])) runs.add(Run(1, *[(7, 500), (8, 500)])) newRuns = mask.filterRunLumisByMask(runs=runs) self.assertEqual(len(newRuns), 1) run = newRuns.pop() self.assertEqual(run.run, 1) self.assertEqual(run.lumis, [3, 4, 7, 8, 9])
def testFilterRealCase(self): """ Test filtering of a set(run) object based on real cases from production """ mask = Mask() mask.addRunWithLumiRanges(run=1, lumiList=[[9, 9], [8, 8], [3, 4], [7, 7]]) mask.setMaxAndSkipLumis(0, 7) mask.setMaxAndSkipRuns(0, 1) runs = set() runs.add(Run(1, *[(9, 500), (10, 500)])) runs.add(Run(1, *[(3, 500), (4, 500)])) runs.add(Run(1, *[(7, 500), (8, 500)])) newRuns = mask.filterRunLumisByMask(runs=runs) self.assertEqual(len(newRuns), 1) run = newRuns.pop() self.assertEqual(run.run, 1) self.assertEqual(run.lumis, [3, 4, 7, 8, 9])
for key in maskA['runAndLumis'].keys(): maskA['runAndLumis'][int(key)] = maskA['runAndLumis'][key] del maskA['runAndLumis'][key] except KeyError: # We don't have a mask. Not much we can do about this maskA = Mask() mask = Mask() mask.update(maskA) runs = [] # Turn arbitrary format into real runs for r in runsA: run = Run(runNumber = r['run_number']) run.lumis = r.get('lumis', []) runs.append(run) # Get rid of runs that aren't in the mask runs = mask.filterRunLumisByMask(runs = runs) for err in errorCouch: task = err['value']['task'] step = err['value']['step'] errors = err['value']['error'] logs = err['value']['logs'] start = err['value']['start'] stop = err['value']['stop'] if not task in workflowData['errors'].keys(): workflowData['errors'][task] = {'failureTime': 0} if not step in workflowData['errors'][task].keys(): workflowData['errors'][task][step] = {} workflowData['errors'][task]['failureTime'] += (stop - start) stepFailures = workflowData['errors'][task][step] for error in errors: exitCode = str(error['exitCode'])