[wwwsearch-commits] r32799 - wwwsearch/mechanize/trunk

jjlee at codespeak.net jjlee at codespeak.net
Sun Oct 1 20:39:52 CEST 2006


Author: jjlee
Date: Sun Oct  1 20:39:51 2006
New Revision: 32799

Modified:
   wwwsearch/mechanize/trunk/test.py
Log:
Add non-working test coverage support

Modified: wwwsearch/mechanize/trunk/test.py
==============================================================================
--- wwwsearch/mechanize/trunk/test.py	(original)
+++ wwwsearch/mechanize/trunk/test.py	Sun Oct  1 20:39:51 2006
@@ -58,7 +58,6 @@
         self.testLoader = testLoader
         self.progName = os.path.basename(argv[0])
         self.parseArgs(argv)
-        self.runTests()
 
     def usageExit(self, msg=None):
         if msg: print msg
@@ -99,7 +98,7 @@
         if self.testRunner is None:
             self.testRunner = TextTestRunner(verbosity=self.verbosity)
         result = self.testRunner.run(self.test)
-        sys.exit(not result.wasSuccessful())
+        return result
 
 
 if __name__ == "__main__":
@@ -110,6 +109,11 @@
 
     # XXX temporary stop-gap to run doctests
 
+    # XXXX coverage output seems incorrect ATM
+    run_coverage = '-c' in sys.argv
+    if run_coverage:
+        sys.argv.remove("-c")
+
     # import local copy of Python 2.5 doctest
     assert os.path.isdir("test")
     sys.path.insert(0, "test")
@@ -122,6 +126,12 @@
     sys.path.insert(0, "test-tools")
     import doctest
 
+    import coverage
+    if run_coverage:
+        print 'running coverage'
+        coverage.erase()
+        coverage.start()
+
     import mechanize
 
     # run .doctest files needing special support
@@ -163,4 +173,23 @@
     import unittest
     test_path = os.path.join(os.path.dirname(sys.argv[0]), "test")
     sys.path.insert(0, test_path)
-    TestProgram(MODULE_NAMES)
+    prog = TestProgram(MODULE_NAMES)
+    result = prog.runTests()
+
+    if run_coverage:
+        # HTML coverage report
+        import colorize
+        from mechanize import _mechanize
+        try:
+            os.mkdir("coverage")
+        except OSError:
+            pass
+        f, s, m, mf = coverage.analysis(_mechanize)
+        fo = open(os.path.join('coverage', os.path.basename(f)+'.html'), 'wb')
+        colorize.colorize_file(f, outstream=fo, not_covered=mf)
+        fo.close()
+        coverage.report(_mechanize)
+        #print coverage.analysis(_mechanize)
+
+    # XXX exit status is wrong -- does not take account of doctests
+    sys.exit(not result.wasSuccessful())


More information about the wwwsearch-commits mailing list