def __init__(self): Archiver.__init__(self) self.host = settings.DATABASES['default']['HOST'] self.cnn = pg.connect(dbname = settings.BENCHMARK_DB_NAME , host = self.host , port = int(settings.DATABASES['default']['PORT']) , user = settings.DATABASES['default']['USER'] , passwd = settings.DATABASES['default']['PASSWORD'] ) if self.cnn == None: raise LookupError, "Failed to connect to Benchmark database."
class BenchTestCase(NellTestCase): """ This class extends the unittest.TestCase class in order to include measurments of perfomance time of desired test. """ def __init__(self, *args, **kws): super(BenchTestCase, self).__init__(*args, **kws) self.archiver = Archiver() if settings.BENCHMARK_DB_NAME is None else dbArchiver(self.__class__.__name__) self.elapsedTime = 0.0 self.startTime = 0.0 self.stopTime = 0.0 def startTimer(self): """ Records start time, and calls stub method for marking start of test. Used in conjunction with the following function to time portions of a test. """ #self.getTestStartInfo() self.onStartTest() self.archiver.onStartTest() self.startTime = time.time() # save for posterity. self.saveValue("start_time", self.startTime) return self.startTime def stopTimer(self): """ Records stop time and elapsed time, and calls stub method for marking end of test. """ self.stopTime = time.time() self.elapsedTime = self.stopTime - self.startTime self.onEndTest() self.archiver.onEndTest() # save for posterity. self.saveValue("stop_time", self.stopTime) self.saveValue("elapsed_time", self.elapsedTime) self.archiver.write() return self.stopTime def timeFunc(self, name, func, *args): """ Calls a given function, and calculates its elapsed time. Used in conjunction with decorator timeIt to time an entire test. """ # Save for posterity. self.saveValue("name", name) startTime = self.startTimer() func(self, *args) stopTime = self.stopTimer() return stopTime - startTime def onStartTest(self): pass def onEndTest(self): pass def assertTimeInRange(self, min, max): self.assertTimeLessThen(max) self.assertTimeGreaterThen(min) def assertTimeGreaterThen(self, minTime): if self.elapsedTime < minTime: raise self.failureException, \ ('time passed: %f less then min time: %f' % \ (self.elapsedTime, minTime)) def assertTimeLessThen(self, maxTime): if self.elapsedTime > maxTime: raise self.failureException, \ ('time passed: %f greater then max time: %f' % \ (self.elapsedTime, maxTime)) def assertTimeNotAboveAvg(self, avgRange): if self.getAvgElapsedTime() > avgRange: raise self.failureException, \ ('time passed: %f above average of %f by too much.' % \ (self.elapsedTime, 0.0)) def getElapsedTime(self): return self.elapsedTime def getAvgElapsedTime(self): return self.archiver.getAvgElapsedTime() def getTestStartInfo(self): os.system("top b n 1 > startTop.txt") f = open("startTop.txt",'r') self.startTopLines = f.readlines() f.close() def getTestStopInfo(self): os.system("top b n 1 > stopTop.txt") f = open("stopTop.txt",'r') self.stopTopLines = f.readlines() f.close() def saveValue(self, name, value): self.archiver.setValue(name, value)
def get_instrument_values(self,inst_id=None,position=None,ts=None): """ given an instrument id and either a position name or timestamp return a list of (pvname,values) tuples for all PVs in that instrument. returns list_of_pv_values where list_of_pv_values is a list of (pvname,values) Note that the values returned may be None, meaning 'unknown' """ if position is not None: try: pos_id,pos_name,ts,a = self.get_positions(inst_id=inst_id,name=position)[0] except IndexError: ts = None if ts is None: return ([], 0) pvs = [i['pvname'] for i in self.inst_pvs.select(where="inst=%i" % inst_id)] data = dict.fromkeys(pvs,None) a = Archiver() for pvname in pvs: for d in a.get_data(pvname,ts-3600.0,ts)[0]: if d[0] <= ts: data[pvname] = d[1] a.db.close() pvnames = data.keys() pvnames.sort() vals = [(p,data[p]) for p in pvnames] return vals,ts
def __init__(self, kase): Archiver.__init__(self) self.cnn = CNN if self.cnn == None: raise LookupError, "Failed to connect to Benchmark database." self.kase = kase
def __init__(self, *args, **kws): super(BenchTestCase, self).__init__(*args, **kws) self.archiver = Archiver() if settings.BENCHMARK_DB_NAME is None else dbArchiver(self.__class__.__name__) self.elapsedTime = 0.0 self.startTime = 0.0 self.stopTime = 0.0