Example #1
0
 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)
Example #2
0
 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)
Example #3
0
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))
Example #4
0
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))