Anonymous committed 1918958

0.11-stable: Add support for running tests under figleaf. Thanks to Tim for the original work on this.

Comments (0)

Files changed (2)

 This is particularly useful when a test fails and you want to explore the environment to debug the problem.
+ == Test Coverage ==
+You can now determine statement coverage of unittests and functional tests.  But you'll have to run them separately for now.
+`figleaf` will need to be on your `PATH`.  Set the `FIGLEAF` environment variable to the figleaf command.
+Create a figleaf-exclude file with filename patterns to exclude.  For example:
+Then run the tests something like this:
+export FIGLEAF=figleaf
+figleaf ./trac/ -v --skip-functional-tests
+mv .figleaf .figleaf.unittests
+python trac/tests/functional/ -v
+mv .figleaf .figleaf.functional
+figleaf2html --exclude-patterns=../figleaf-exclude .figleaf.functional .figleaf.unittests
+Also, this is very slow; on a decent machine, 10 minutes for the functional tests is normal.
+To run without figleaf, be sure to unset `FIGLEAF`.


     def start(self):
         """Starts the webserver"""
-        server = Popen([sys.executable, "./trac/web/",
+        if 'FIGLEAF' in os.environ:
+            exe = os.environ['FIGLEAF']
+        else:
+            exe = sys.executable
+        server = Popen([exe, "./trac/web/",
                         "--port=%s" % self.port, "-s",
                         "--basic-auth=trac,%s," % self.htpasswd,
                 call(["taskkill", "/f", "/pid", str(],
                      stdin=PIPE, stdout=PIPE, stderr=PIPE)
-                os.kill(, signal.SIGTERM)
+                os.kill(, signal.SIGINT)
                     os.waitpid(, 0)
                 except OSError, e: