[tor-commits] [stem/master] Dropping load_user_configuration() helper

atagar at torproject.org atagar at torproject.org
Sun Apr 14 04:33:46 UTC 2013


commit a8d1eb06768335ac2d95af78195608ba0f091f7b
Author: Damian Johnson <atagar at torproject.org>
Date:   Thu Apr 11 08:58:05 2013 -0700

    Dropping load_user_configuration() helper
    
    One step closer to simplifying our arg parsing. The load_user_configuration()
    was mostly there to unify our configuration and commandline arguments. Now that
    the new-world-order will only have the later we should drop the helper to
    simplify the code.
---
 run_tests.py |  152 ++++++++++++++++++++++++++--------------------------------
 1 files changed, 68 insertions(+), 84 deletions(-)

diff --git a/run_tests.py b/run_tests.py
index 92c40ab..45c3e00 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -66,89 +66,6 @@ DEFAULT_RUN_TARGET = Target.RUN_OPEN
 ERROR_ATTR = (term.Color.RED, term.Attr.BOLD)
 
 
-def load_user_configuration(test_config):
-  """
-  Parses our commandline arguments, loading our custom test configuration if
-  '--config' was provided and then appending arguments to that. This does some
-  sanity checking on the input, printing an error and quitting if validation
-  fails.
-  """
-
-  arg_overrides = {}
-
-  try:
-    opts = getopt.getopt(sys.argv[1:], OPT, OPT_EXPANDED)[0]
-  except getopt.GetoptError, exc:
-    print "%s (for usage provide --help)" % exc
-    sys.exit(1)
-
-  for opt, arg in opts:
-    if opt in ("-a", "--all"):
-      arg_overrides["argument.unit"] = "true"
-      arg_overrides["argument.integ"] = "true"
-      arg_overrides["argument.style"] = "true"
-    elif opt in ("-u", "--unit"):
-      arg_overrides["argument.unit"] = "true"
-    elif opt in ("-i", "--integ"):
-      arg_overrides["argument.integ"] = "true"
-    elif opt in ("-s", "--style"):
-      arg_overrides["argument.style"] = "true"
-    elif opt == "--python3":
-      arg_overrides["argument.python3"] = "true"
-    elif opt == "--clean":
-      arg_overrides["argument.python3_clean"] = "true"
-    elif opt in ("-t", "--targets"):
-      integ_targets = arg.split(",")
-
-      # validates the targets
-      if not integ_targets:
-        print "No targets provided"
-        sys.exit(1)
-
-      for target in integ_targets:
-        if not target in Target:
-          print "Invalid integration target: %s" % target
-          sys.exit(1)
-        else:
-          target_config = test_config.get("target.config", {}).get(target)
-
-          if target_config:
-            arg_overrides[target_config] = "true"
-    elif opt in ("-l", "--test"):
-      arg_overrides["argument.test"] = arg
-    elif opt in ("-l", "--log"):
-      arg_overrides["argument.log"] = arg.upper()
-    elif opt in ("--tor"):
-      arg_overrides["argument.tor"] = arg
-    elif opt in ("-h", "--help"):
-      # Prints usage information and quits. This includes a listing of the
-      # valid integration targets.
-
-      print CONFIG["msg.help"]
-
-      # gets the longest target length so we can show the entries in columns
-      target_name_length = max(map(len, Target))
-      description_format = "    %%-%is - %%s" % target_name_length
-
-      for target in Target:
-        print description_format % (target, CONFIG["target.description"].get(target, ""))
-
-      print
-
-      sys.exit()
-
-  for key, value in arg_overrides.items():
-    test_config.set(key, value)
-
-  # basic validation on user input
-
-  log_config = CONFIG["argument.log"]
-  if log_config and not log_config in log.LOG_VALUES:
-    print "'%s' isn't a logging runlevel, use one of the following instead:" % log_config
-    print "  TRACE, DEBUG, INFO, NOTICE, WARN, ERROR"
-    sys.exit(1)
-
-
 def _clean_orphaned_pyc():
   test.output.print_noline("  checking for orphaned .pyc files... ", *test.runner.STATUS_ATTR)
 
@@ -289,7 +206,74 @@ if __name__ == '__main__':
   settings_path = os.path.join(test.runner.STEM_BASE, "test", "settings.cfg")
   test_config.load(settings_path)
 
-  load_user_configuration(test_config)
+  try:
+    opts = getopt.getopt(sys.argv[1:], OPT, OPT_EXPANDED)[0]
+  except getopt.GetoptError, exc:
+    print "%s (for usage provide --help)" % exc
+    sys.exit(1)
+
+  for opt, arg in opts:
+    if opt in ("-a", "--all"):
+      test_config.set("argument.unit", "true")
+      test_config.set("argument.integ", "true")
+      test_config.set("argument.style", "true")
+    elif opt in ("-u", "--unit"):
+      test_config.set("argument.unit", "true")
+    elif opt in ("-i", "--integ"):
+      test_config.set("argument.integ", "true")
+    elif opt in ("-s", "--style"):
+      test_config.set("argument.style", "true")
+    elif opt == "--python3":
+      test_config.set("argument.python3", "true")
+    elif opt == "--clean":
+      test_config.set("argument.python3_clean", "true")
+    elif opt in ("-t", "--targets"):
+      integ_targets = arg.split(",")
+
+      # validates the targets
+      if not integ_targets:
+        print "No targets provided"
+        sys.exit(1)
+
+      for target in integ_targets:
+        if not target in Target:
+          print "Invalid integration target: %s" % target
+          sys.exit(1)
+        else:
+          target_config = test_config.get("target.config", {}).get(target)
+
+          if target_config:
+            test_config.set(target_config, "true")
+    elif opt in ("-l", "--test"):
+      test_config.set("argument.test", arg)
+    elif opt in ("-l", "--log"):
+      test_config.set("argument.log", arg.upper())
+    elif opt in ("--tor"):
+      test_config.set("argument.tor", arg)
+    elif opt in ("-h", "--help"):
+      # Prints usage information and quits. This includes a listing of the
+      # valid integration targets.
+
+      print CONFIG["msg.help"]
+
+      # gets the longest target length so we can show the entries in columns
+      target_name_length = max(map(len, Target))
+      description_format = "    %%-%is - %%s" % target_name_length
+
+      for target in Target:
+        print description_format % (target, CONFIG["target.description"].get(target, ""))
+
+      print
+
+      sys.exit()
+
+  # basic validation on user input
+
+  log_config = CONFIG["argument.log"]
+  if log_config and not log_config in log.LOG_VALUES:
+    print "'%s' isn't a logging runlevel, use one of the following instead:" % log_config
+    print "  TRACE, DEBUG, INFO, NOTICE, WARN, ERROR"
+    sys.exit(1)
 
   # check that we have 2to3 and python3 available in our PATH
   if CONFIG["argument.python3"]:





More information about the tor-commits mailing list