[tor-commits] [stem/master] Moving testing module from results to header

atagar at torproject.org atagar at torproject.org
Fri Dec 30 18:15:42 UTC 2011


commit 285bffdab1c818ee675390701a0539510f41b4f7
Author: Damian Johnson <atagar at torproject.org>
Date:   Wed Dec 28 10:01:23 2011 -0800

    Moving testing module from results to header
    
    Dropping the custom header titles and putting the module name there instead.
    This means that the module name is redundant with the test results, which was
    cluttering the output (bad for readability). Thanks to Josh Barr for the
    suggestion.
---
 run_tests.py   |   45 +++++++++++++++++++++++----------------------
 test/output.py |   12 ++++++++++++
 2 files changed, 35 insertions(+), 22 deletions(-)

diff --git a/run_tests.py b/run_tests.py
index 7e3dadb..2b9e412 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -35,23 +35,24 @@ OPT = "uic:t:h"
 OPT_EXPANDED = ["unit", "integ", "config=", "targets=", "help"]
 DIVIDER = "=" * 70
 
-# (name, class) tuples for all of our unit and integration tests
-UNIT_TESTS = (("stem.socket.ControlMessage", test.unit.socket.control_message.TestControlMessage),
-              ("stem.socket.ControlLine", test.unit.socket.control_line.TestControlLine),
-              ("stem.types.Version", test.unit.version.TestVersion),
-              ("stem.connection.authenticate", test.unit.connection.authentication.TestAuthenticate),
-              ("stem.connection.ProtocolInfoResponse", test.unit.connection.protocolinfo.TestProtocolInfoResponse),
-              ("stem.util.enum", test.unit.util.enum.TestEnum),
-              ("stem.util.system", test.unit.util.system.TestSystem),
-             )
+UNIT_TESTS = (
+  test.unit.socket.control_message.TestControlMessage,
+  test.unit.socket.control_line.TestControlLine,
+  test.unit.version.TestVersion,
+  test.unit.connection.authentication.TestAuthenticate,
+  test.unit.connection.protocolinfo.TestProtocolInfoResponse,
+  test.unit.util.enum.TestEnum,
+  test.unit.util.system.TestSystem,
+)
 
-INTEG_TESTS = (("stem.socket.ControlMessage", test.integ.socket.control_message.TestControlMessage),
-              ("stem.connection.authenticate", test.integ.connection.authentication.TestAuthenticate),
-              ("stem.connection.connect_*", test.integ.connection.connect.TestConnect),
-              ("stem.connection.get_protocolinfo", test.integ.connection.protocolinfo.TestProtocolInfo),
-               ("stem.util.conf", test.integ.util.conf.TestConf),
-               ("stem.util.system", test.integ.util.system.TestSystem),
-              )
+INTEG_TESTS = (
+  test.integ.socket.control_message.TestControlMessage,
+  test.integ.connection.authentication.TestAuthenticate,
+  test.integ.connection.connect.TestConnect,
+  test.integ.connection.protocolinfo.TestProtocolInfo,
+  test.integ.util.conf.TestConf,
+  test.integ.util.system.TestSystem,
+)
 
 # Integration tests above the basic suite.
 TARGETS = stem.util.enum.Enum(*[(v, v) for v in ("ONLINE", "RELATIVE", "CONN_NONE", "CONN_OPEN", "CONN_PASSWORD", "CONN_COOKIE", "CONN_MULTIPLE", "CONN_SOCKET", "CONN_SCOOKIE", "CONN_ALL")])
@@ -175,13 +176,13 @@ if __name__ == '__main__':
     print
   
   error_tracker = test.output.ErrorTracker()
-  output_filters = (error_tracker.get_filter(), test.output.colorize, )
+  output_filters = (error_tracker.get_filter(), test.output.strip_module, test.output.colorize)
   
   if run_unit_tests:
     print_divider("UNIT TESTS", True)
     
-    for name, test_class in UNIT_TESTS:
-      print_divider(name)
+    for test_class in UNIT_TESTS:
+      print_divider(test_class.__module__)
       suite = unittest.TestLoader().loadTestsFromTestCase(test_class)
       test_results = StringIO.StringIO()
       unittest.TextTestRunner(test_results, verbosity=2).run(suite)
@@ -230,9 +231,9 @@ if __name__ == '__main__':
         print term.format("Running tests...", term.Color.BLUE, term.Attr.BOLD)
         print
         
-        for name, test_class in INTEG_TESTS:
-          print_divider(name)
-          stem_logger.info("STARTING INTEGRATION TEST => %s" % name)
+        for test_class in INTEG_TESTS:
+          print_divider(test_class.__module__)
+          stem_logger.info("STARTING INTEGRATION TEST => %s" % test_class.__module__)
           suite = unittest.TestLoader().loadTestsFromTestCase(test_class)
           test_results = StringIO.StringIO()
           unittest.TextTestRunner(test_results, verbosity=2).run(suite)
diff --git a/test/output.py b/test/output.py
index 4b53e52..9df9088 100644
--- a/test/output.py
+++ b/test/output.py
@@ -3,6 +3,8 @@ Variety of filters for the python unit testing output, which can be chained
 together for improved readability.
 """
 
+import re
+
 import stem.util.enum
 import stem.util.term as term
 
@@ -67,6 +69,16 @@ def colorize(line_type, line_content):
   
   return term.format(line_content, *LINE_ATTR[line_type])
 
+def strip_module(line_type, line_content):
+  """
+  Removes the module name from testing output. This information tends to be
+  repetative, and redundant with the headers.
+  """
+  
+  m = re.match(".*( \(.*?\)).*", line_content)
+  if m: line_content = line_content.replace(m.groups()[0], "", 1)
+  return line_content
+
 class ErrorTracker:
   """
   Stores any failure or error results we've encountered.





More information about the tor-commits mailing list