[tor-commits] [ooni-probe/master] Trap exceptions that get raised when running tests

art at torproject.org art at torproject.org
Mon Nov 12 09:13:08 UTC 2012


commit 4fb3dc69477fae8ec6136700c90f2cb54cd14373
Author: Arturo Filastò <art at fuffa.org>
Date:   Mon Nov 12 09:39:38 2012 +0100

    Trap exceptions that get raised when running tests
    (cherry picked from commit 5e46ee69b9039d03b7726772aff2bf27fc347851)
---
 ooni/runner.py |   33 ++++++++++++++++++---------------
 1 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/ooni/runner.py b/ooni/runner.py
index 1aac145..b27ed63 100644
--- a/ooni/runner.py
+++ b/ooni/runner.py
@@ -170,6 +170,7 @@ def runTestWithInput(test_class, test_method, test_input, oreporter):
     # call setup on the test
     test_instance.setUp()
     test = getattr(test_instance, test_method)
+
     d = defer.maybeDeferred(test)
     d.addCallback(test_done, test_instance, test_method)
     d.addErrback(test_error, test_instance, test_method)
@@ -195,11 +196,8 @@ def runTestWithInputUnit(test_class,
     log.debug("input unit %s" % input_unit)
     for test_input in input_unit:
         log.debug("running with input: %s" % test_input)
-        try:
-            d = runTestWithInput(test_class, 
-                    test_method, test_input, oreporter)
-        except Exception, e:
-            print e
+        d = runTestWithInput(test_class, 
+                test_method, test_input, oreporter)
         dl.append(d)
     return defer.DeferredList(dl)
 
@@ -241,15 +239,20 @@ def runTestCases(test_cases, options,
     # This deferred list is a deferred list of deferred lists
     # it is used to store all the deferreds of the tests that 
     # are run
-    for input_unit in input_unit_factory:
-        # We do this because generators can't we rewound.
-        input_list = list(input_unit)
-        for test_case in test_cases:
-            log.debug("Processing %s" % test_case[1])
-            test_class = test_case[0]
-            test_method = test_case[1]
-            yield runTestWithInputUnit(test_class,
-                        test_method, input_list,
-                        oreporter)
+    try:
+        for input_unit in input_unit_factory:
+            log.debug("Running this input unit %s" % input_unit)
+            # We do this because generators can't we rewound.
+            input_list = list(input_unit)
+            for test_case in test_cases:
+                log.debug("Processing %s" % test_case[1])
+                test_class = test_case[0]
+                test_method = test_case[1]
+                yield runTestWithInputUnit(test_class,
+                            test_method, input_list,
+                            oreporter)
+    except Exception:
+        log.exception("Problem in running test")
+        reactor.stop()
     oreporter.allDone()
 





More information about the tor-commits mailing list