[tor-commits] [ooni-probe/master] Further refactoring of nettest and runner

art at torproject.org art at torproject.org
Wed Oct 24 16:17:38 UTC 2012


commit d7209408126949ae4a7a00b3ca0d7553644b98b7
Author: Arturo Filastò <arturo at filasto.net>
Date:   Wed Oct 24 15:49:06 2012 +0000

    Further refactoring of nettest and runner
    * Add some notes on running tests in threads
    * Define and document _tests attribute of out nettest TestSuite
    * Remove unused code
---
 ooni/nettest.py |   52 +++++++++++++++++++++++-----------------------------
 ooni/runner.py  |    1 -
 2 files changed, 23 insertions(+), 30 deletions(-)

diff --git a/ooni/nettest.py b/ooni/nettest.py
index ade26ed..5302d2f 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -1,8 +1,17 @@
-import itertools
+# -*- encoding: utf-8 -*-
+#
+# :authors: Arturo "hellais" Filastò <art at fuffa.org>
+# :licence: see LICENSE
+
+import sys
 import os
+import itertools
+import traceback
 
 from twisted.trial import unittest, itrial, util
 from twisted.internet import defer, utils
+from twisted.python import usage
+
 from ooni.utils import log
 
 pyunit = __import__('unittest')
@@ -12,6 +21,10 @@ class InputTestSuite(pyunit.TestSuite):
     This in an extension of a unittest test suite. It adds support for inputs
     and the tracking of current index via idx.
     """
+
+    # This is used to keep track of the tests that are associated with our
+    # special test suite
+    _tests = None
     def run(self, result, idx=0):
         log.debug("Running test suite")
         self._idx = idx
@@ -29,25 +42,16 @@ class InputTestSuite(pyunit.TestSuite):
                 test.input = self.input
                 test._idx = self._idx
             except Exception, e:
-                log.debug("Error in some stuff")
+                log.debug("Error in setting test attributes")
+                log.debug("This is probably because the test case you are "\
+                          "running is not a nettest")
                 log.debug(e)
-                import sys
-                print sys.exc_info()
 
-            try:
-                log.debug("Running test")
-                test(result)
-                log.debug("Ran.")
-            except Exception, e:
-                log.debug("Attribute error thing")
-                log.debug("Had some problems with _idx")
-                log.debug(e)
-                import traceback, sys
-                print sys.exc_info()
-                traceback.print_exc()
-                print e
-
-                test(result)
+            log.debug("Running test")
+            # XXX we may want in a future to put all of these tests inside of a
+            # thread pool and run them all in parallel
+            test(result)
+            log.debug("Ran.")
 
             self._idx += 1
         return result
@@ -94,7 +98,7 @@ class TestCase(unittest.TestCase):
     * version: is the version string of the test.
     """
     name = "I Did Not Change The Name"
-    author = "John Doe <foo at example.com>"
+    author = "Jane Doe <foo at example.com>"
     version = "0"
 
     inputs = [None]
@@ -105,16 +109,6 @@ class TestCase(unittest.TestCase):
 
     optParameters = None
 
-    def _raaun(self, methodName, result):
-        from twisted.internet import reactor
-        method = getattr(self, methodName)
-        log.debug("Running %s" % methodName)
-        d = defer.maybeDeferred(
-                utils.runWithWarningsSuppressed, self._getSuppress(), method)
-        d.addBoth(lambda x : call.active() and call.cancel() or x)
-        return d
-
-
     def deferSetUp(self, ignored, result):
         """
         If we have the reporterFactory set we need to write the header. If such
diff --git a/ooni/runner.py b/ooni/runner.py
index de90a80..8068b5b 100644
--- a/ooni/runner.py
+++ b/ooni/runner.py
@@ -123,7 +123,6 @@ def loadTestsAndOptions(classes, config):
     method_prefix = 'test'
     options = []
     test_cases = []
-    names = []
 
     _old_klass_type = LegacyOONITest
 





More information about the tor-commits mailing list