def setUp(self): self._tempFiles = [] self._showFiles = [] self.keepTemporaryFiles = False #self.ui = console.CaptureConsole(verbosity=-2,batch=True) self._oldToolkit = syscon.getSystemConsole() self.toolkit = CaptureConsole( #encoding="latin1", verbosity=self.verbosity, batch=self.batch) syscon.setSystemConsole(self.toolkit)
def setUp(self): self._tempFiles = [] self._showFiles = [] self.keepTemporaryFiles = False #self.ui = console.CaptureConsole(verbosity=-2,batch=True) self._oldToolkit=syscon.getSystemConsole() self.toolkit=CaptureConsole( #encoding="latin1", verbosity=self.verbosity, batch=self.batch) syscon.setSystemConsole(self.toolkit)
class TestCase(unittest.TestCase): waiting=False #win32_printerName_PS = "Lexmark Optra PS" #tempDir = r"c:\temp" verbosity=-2 batch=True ## def __init__(self): ## unittest.TestCase.__init__(self) ## self.shouldStop = 1 ## def defaultTestResult(self): ## return TestResult() def setUp(self): self._tempFiles = [] self._showFiles = [] self.keepTemporaryFiles = False #self.ui = console.CaptureConsole(verbosity=-2,batch=True) self._oldToolkit=syscon.getSystemConsole() self.toolkit=CaptureConsole( #encoding="latin1", verbosity=self.verbosity, batch=self.batch) syscon.setSystemConsole(self.toolkit) def tearDown(self): if self._oldToolkit.isVerbose(): # called with -v or -vv print self.getConsoleOutput() syscon.setSystemConsole(self._oldToolkit) #print s #raise "blabla" if len(self._tempFiles) > 0: for fn in self._tempFiles: if not os.path.exists(fn): self.fail( "Temporary file %s has not been created" % fn) def afterRun(self,sess): # called by runtests.py if not hasattr(self,"_showFiles"): return # happens if test was never run because a # previous test failed for fn in self._showFiles: #self.failUnless(os.path.exists(fn)) if sess.confirm( "Okay to start %s ?" % fn, default=False): os.system('start ' + fn) if len(self._tempFiles) > 0: if sess.confirm("Okay to delete temporary files ?"): for fn in self._tempFiles: if not os.path.exists(fn): os.remove(fn) def getConsoleOutput(self): return self.toolkit.getConsoleOutput() #return self.ui.getConsoleOutput() def assertEquivalent(self,observed,expected,msg=None): """like assertEqual(), but any whitespace is converted to a single space, and if they differ, they are printed with a newline before each (so that it is more easy to see the difference) """ l1 = observed.split() l2 = expected.split() #print l1 #print "---" #print l2 if l1 == l2: return u=UniStringIO() #u=StringIO() if msg is not None: u.write(msg+":") u.write("\n--- observed --- :\n") #u.write(observed) u.write(repr(" ".join(l1))) u.write("\n--- expected --- :\n") #u.write(expected) u.write(repr(" ".join(l2))) u.write("\n---\n") if False: from difflib import ndiff diff = ndiff(l1,l2) print '\n'.join(diff) if True: file("observed.txt","wt").write("\n".join(l1)) file("expected.txt","wt").write("\n".join(l2)) #self.fail(a.getvalue()) #self.fail(u.getvalue()) self.fail(u) def assertEquivalentHtml(self,observed,expected,msg=None): """ like assertEquivalent(), but here we ignore differences that are not importand in HTML """ observed=observed.replace("><","> <") expected=expected.replace("><","> <") self.assertEquivalent(observed,expected,msg=None) def addTempFile(self,filename,showOutput=None): """unlike tempfile, these files are not OPENED """ fn = os.path.join(config.paths.get('tempdir'),filename) if os.path.exists(fn): os.remove(fn) self._tempFiles.append(fn) if showOutput: self._showFiles.append(fn) return fn ## def trycmd(self,cmd,expected=None,msg=None): ## fd=os.popen(cmd,"r") ## observed=fd.read() ## exitstatus=fd.close() ## #print "observed", observed ## #msg=repr(cmd)+" failed" ## if exitstatus is not None: ## self.fail( ## "%r failed: close() returned %r, stdout is %r." \ ## % (cmd,exitstatus,observed)) ## if expected is not None: ## self.assertEquivalent(observed,expected,msg) def trycmd(self,cmd, expected=None, msg=None, startdir=None, expectfile=None): observed,exitstatus=trycmd(cmd,startdir=startdir) #print "observed", observed #msg=repr(cmd)+" failed" if exitstatus is not None: self.fail( "%r failed: close() returned %r, stdout is %r." \ % (cmd,exitstatus,observed)) if expected is not None: assert ispure(expected) expected=expected.strip() if msg is None: msg="unexpected output of `%s`" % cmd self.assertEquivalent(observed.strip(),expected,msg) if expectfile is not None: self._tempFiles.remove(expectfile) if not os.path.exists(expectfile): self.fail( '`%s` did not generate file %s. Output is:\n%s'\ % (cmd,expectfile,observed))
class TestCase(unittest.TestCase): waiting = False #win32_printerName_PS = "Lexmark Optra PS" #tempDir = r"c:\temp" verbosity = -2 batch = True ## def __init__(self): ## unittest.TestCase.__init__(self) ## self.shouldStop = 1 ## def defaultTestResult(self): ## return TestResult() def setUp(self): self._tempFiles = [] self._showFiles = [] self.keepTemporaryFiles = False #self.ui = console.CaptureConsole(verbosity=-2,batch=True) self._oldToolkit = syscon.getSystemConsole() self.toolkit = CaptureConsole( #encoding="latin1", verbosity=self.verbosity, batch=self.batch) syscon.setSystemConsole(self.toolkit) def tearDown(self): if self._oldToolkit.isVerbose(): # called with -v or -vv print self.getConsoleOutput() syscon.setSystemConsole(self._oldToolkit) #print s #raise "blabla" if len(self._tempFiles) > 0: for fn in self._tempFiles: if not os.path.exists(fn): self.fail("Temporary file %s has not been created" % fn) def afterRun(self, sess): # called by runtests.py if not hasattr(self, "_showFiles"): return # happens if test was never run because a # previous test failed for fn in self._showFiles: #self.failUnless(os.path.exists(fn)) if sess.confirm("Okay to start %s ?" % fn, default=False): os.system('start ' + fn) if len(self._tempFiles) > 0: if sess.confirm("Okay to delete temporary files ?"): for fn in self._tempFiles: if not os.path.exists(fn): os.remove(fn) def getConsoleOutput(self): return self.toolkit.getConsoleOutput() #return self.ui.getConsoleOutput() def assertEquivalent(self, observed, expected, msg=None): """like assertEqual(), but any whitespace is converted to a single space, and if they differ, they are printed with a newline before each (so that it is more easy to see the difference) """ l1 = observed.split() l2 = expected.split() #print l1 #print "---" #print l2 if l1 == l2: return u = UniStringIO() #u=StringIO() if msg is not None: u.write(msg + ":") u.write("\n--- observed --- :\n") #u.write(observed) u.write(repr(" ".join(l1))) u.write("\n--- expected --- :\n") #u.write(expected) u.write(repr(" ".join(l2))) u.write("\n---\n") if False: from difflib import ndiff diff = ndiff(l1, l2) print '\n'.join(diff) if True: file("observed.txt", "wt").write("\n".join(l1)) file("expected.txt", "wt").write("\n".join(l2)) #self.fail(a.getvalue()) #self.fail(u.getvalue()) self.fail(u) def assertEquivalentHtml(self, observed, expected, msg=None): """ like assertEquivalent(), but here we ignore differences that are not importand in HTML """ observed = observed.replace("><", "> <") expected = expected.replace("><", "> <") self.assertEquivalent(observed, expected, msg=None) def addTempFile(self, filename, showOutput=None): """unlike tempfile, these files are not OPENED """ fn = os.path.join(config.paths.get('tempdir'), filename) if os.path.exists(fn): os.remove(fn) self._tempFiles.append(fn) if showOutput: self._showFiles.append(fn) return fn ## def trycmd(self,cmd,expected=None,msg=None): ## fd=os.popen(cmd,"r") ## observed=fd.read() ## exitstatus=fd.close() ## #print "observed", observed ## #msg=repr(cmd)+" failed" ## if exitstatus is not None: ## self.fail( ## "%r failed: close() returned %r, stdout is %r." \ ## % (cmd,exitstatus,observed)) ## if expected is not None: ## self.assertEquivalent(observed,expected,msg) def trycmd(self, cmd, expected=None, msg=None, startdir=None, expectfile=None): observed, exitstatus = trycmd(cmd, startdir=startdir) #print "observed", observed #msg=repr(cmd)+" failed" if exitstatus is not None: self.fail( "%r failed: close() returned %r, stdout is %r." \ % (cmd,exitstatus,observed)) if expected is not None: assert ispure(expected) expected = expected.strip() if msg is None: msg = "unexpected output of `%s`" % cmd self.assertEquivalent(observed.strip(), expected, msg) if expectfile is not None: self._tempFiles.remove(expectfile) if not os.path.exists(expectfile): self.fail( '`%s` did not generate file %s. Output is:\n%s'\ % (cmd,expectfile,observed))