def create_test_MAIN(self): print(('ScriptBuild run - checking for ' + \ '"{}" in output').format(pair[0])) skipWrite = False if pair[0][0] == 'Error': skipWrite = True setLogLookBackTimeSec(3) lfiles = list(getWriteLog()) writes = getFilesWritten(list(lfiles)) self.written = writes self.startTimeSecs = time.time() return True time.sleep(3.5) self.startTimeSecs = time.time() self.startTime = time.strftime('%x %X', time.localtime()) self.cap() self.main(*pair[1]) self.uncap() print('tear down capture') # debug unittest #print('*'*59) #log.info('\ncap:\n\t {}'.format(self.capturedOutput.getvalue())) #print('*'*59) lfiles = None if not skipWrite: curDateTime = time.strftime('%x %X', time.localtime()) setLogLookBackTimeSec(3) lfiles = list(getWriteLog()) writes = getFilesWritten(list(lfiles)) self.written = writes if writes: self.assertTrue(len(writes) > 0) m = [] for fl in pair[2]: m.extend([wrt for wrt in writes if fl.strip() in wrt]) # don't know when program will exit depends on err if 'Error' not in pair[0]: self.assertTrue(len(m) > 0) self.assertEqual(len(pair[2]), len(m)) print('passed look back 3 sec at {}'.format(curDateTime)) self.assertTrue(pair[0][0] in self.capturedOutput.getvalue()) self.assertTrue(pair[0][1] in self.capturedOutput.getvalue())
def logReport(): ''' Output filtered log files showing: - files confirmed to exists during run - files written during run :log error: Unit testing run before ipybuild kills ipybuild logging ''' writelog = None curDateTime = time.strftime('%x %X', time.localtime()) all_log = list(filecontrol.getWriteLog()) writelog = filecontrol.getFilesWritten(all_log) confirmed = filecontrol.getFilesConfirmed(all_log) # debug or check required # exists = [flog for flog in all_log \ # if 'Exists' in flog and not '____' in flog] log.info('\n\t time {}'.format(curDateTime)) if not writelog: log.error('\nUNITTEST WAS RUN BEFORE IPYBUILD ' + \ '- NO FILE LOGGING - RESTART RUN IPYBUILD ') if writelog: if gsBuild.Verbose or not gsBuild.INFO and writelog: log.info(('\nwrite log:' + '\n {}'*len(writelog)) \ .format(*writelog)) if confirmed: if gsBuild.Verbose or not gsBuild.INFO and confirmed: log.info(('\nconfirmed log:' + '\n {}'*len(confirmed)) \ .format(*confirmed))
def qLog(self): setLogLookBackTimeSec(3) curDateTime = time.strftime('%x %X', time.localtime()) lfiles = list(getWriteLog()) cnffiles = None wfiles = None cmplst = None if lfiles: cnffiles = getFilesConfirmed(list(lfiles)) wfiles = getFilesWritten(list(lfiles)) if cnffiles and wfiles: cmplst = CompareFilesConfirmedToRequired(cnffiles, self.tfiles) if cmplst: raise FatalError('ValueError', '\n {}' * len(cmplst).format(*cmplst)) print('-' * 59) print(('log read time{}\n' + \ 'proc start time {}').format(curDateTime, self.startTime)) print(('\n confirmed:' + '\n {}' * len(cnffiles)).format(*cnffiles)) print('-' * 59) print(('\n writtten:' + '\n {}' * len(wfiles)).format(*wfiles))
def tearDown(self): sys.stdout = self.stdout_ self.capturedOutput.close() self.qLog() todel = getFilesWritten(getWriteLog()) if todel: print(('\n Should be deleted:\n' + '{}\n'*len(todel)) \ .format(*todel)) else: print('\n Nothing in to delete') self.delGeneratedFiles() if todel: for f in todel: if not os.path.isdir(f): msg = 'del failed with:\n{}'.format(f) assert not os.path.exists(f), msg print("\n\t" + self.id() + " tear-down self")
def create_test_CMD(self): print(('set up Subprocess - checking for ' + \ '"{}" in output').format(pairs[0])) skipWrite = False import subprocess from subprocess import PIPE self.po = subprocess.Popen time.sleep(3.5) self.startTimeSecs = time.time() self.startTime = time.strftime('%x %X', time.localtime()) p = self.po(pairs[1], stdout=PIPE, stderr=PIPE) stdout, stderr = p.communicate() if 'Trace' in stderr or 'Err' in stderr: self.err = stderr if pairs[0][0] == 'Error': skipWrite = True self.errTraceErr() log.error('\n{}'.format(self.err)) self.assertTrue('Error' in self.err) print('tear down Subprocess') p.kill() #print('*'*59) #log.warn(('\n stdout ' + '*'*50 + '\n{}'*len(stdout.split('\n')) + '\nend' +'*'*59) \ # .format(*stdout.split('\n'))) #print('*'*59) return True # un-expected err elif self.errTraceErr(): log.error('\n unexpected err\n: {}'.format(self.errTraceErr())) p.kill() # debug unittest #print('*'*59) #log.warn(('\n stdout ' + '*'*50 + '\n{}'*len(stdout.split('\n')) + '\nend' +'*'*59) \ # .format(*stdout.split('\n'))) #print('*'*59) if not skipWrite: curDateTime = time.strftime('%x %X', time.localtime()) setLogLookBackTimeSec(3) writes = getFilesWritten(list(filecontrol.getWriteLog())) if writes: self.written = list(writes) self.assertTrue(len(writes) > 0) m = [] for fl in pairs[2]: m.extend([wrt for wrt in writes if fl.strip() in wrt]) #don't know when program will exit depends on err if 'Error' not in pairs[0]: self.assertTrue(len(m) > 0) self.assertEqual(len(pairs[2]), len(m)) print('passed look back 3 sec at {}'.format(curDateTime)) self.assertTrue(pairs[0][0] in stdout) self.assertTrue(pairs[0][1] in stdout)