[tor-commits] [stem/master] Removing run_tests.py's '--python3' argument

atagar at torproject.org atagar at torproject.org
Sun Jan 4 02:29:04 UTC 2015


commit e8ce90be6b3aa0dcf2c7b960561ac185d49db3bb
Author: Damian Johnson <atagar at torproject.org>
Date:   Sat Jan 3 18:07:41 2015 -0800

    Removing run_tests.py's '--python3' argument
    
    Now that we have a unified codebase running tests with python3 is as simple
    as...
    
      % python3 run_tests.py --all
    
    No reason to keep our '--python3' argument, which did a 2to3 conversion.
---
 docs/faq.rst |    8 -------
 run_tests.py |   59 +++++++++++++++++---------------------------------
 test/util.py |   68 ----------------------------------------------------------
 3 files changed, 20 insertions(+), 115 deletions(-)

diff --git a/docs/faq.rst b/docs/faq.rst
index 2f5df4a..1c0dd70 100644
--- a/docs/faq.rst
+++ b/docs/faq.rst
@@ -503,14 +503,6 @@ error checking and `pep8 <http://pep8.readthedocs.org/en/latest/>`_ for style
 checking. If you have them installed then they automatically take place as part
 of all test runs.
 
-If you have **Python 3** installed then you can test our Python 3 compatibility
-with the following. *Note that need to still initially execute run_tests.py
-with a 2.x version of Python.*
-
-::
-
-  ~/stem$ ./run_tests.py --all --python3
-
 See ``run_tests.py --help`` for more usage information.
 
 .. _how_do_i_build_the_site:
diff --git a/run_tests.py b/run_tests.py
index 2bf2744..dc846e7 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -48,8 +48,6 @@ from test.util import STEM_BASE, Target, Task
 ARGS = {
   'run_unit': False,
   'run_integ': False,
-  'run_python3': False,
-  'run_python3_clean': False,
   'specific_test': None,
   'logging_runlevel': None,
   'tor_path': 'tor',
@@ -59,12 +57,12 @@ ARGS = {
   'print_help': False,
 }
 
-OPT = "auit:l:vh"
-OPT_EXPANDED = ["all", "unit", "integ", "python3", "clean", "targets=", "test=", "log=", "tor=", "verbose", "help"]
+OPT = 'auit:l:vh'
+OPT_EXPANDED = ['all', 'unit', 'integ', 'targets=', 'test=', 'log=', 'tor=', 'verbose', 'help']
 
-CONFIG = stem.util.conf.config_dict("test", {
-  "target.torrc": {},
-  "integ.test_directory": "./test/data",
+CONFIG = stem.util.conf.config_dict('test', {
+  'target.torrc': {},
+  'integ.test_directory': './test/data',
 })
 
 SRC_PATHS = [os.path.join(STEM_BASE, path) for path in (
@@ -158,7 +156,7 @@ def main():
 
   pyflakes_task, pep8_task = None, None
 
-  if not stem.prereq.is_python_3() and not args.specific_test:
+  if not args.specific_test:
     if stem.util.test_tools.is_pyflakes_available():
       pyflakes_task = PYFLAKES_TASK
 
@@ -179,18 +177,6 @@ def main():
     pep8_task,
   )
 
-  if args.run_python3 and sys.version_info[0] != 3:
-    test.util.run_tasks(
-      "EXPORTING TO PYTHON 3",
-      Task("checking requirements", test.util.python3_prereq),
-      Task("cleaning prior export", test.util.python3_clean, (not args.run_python3_clean,)),
-      Task("exporting python 3 copy", test.util.python3_copy_stem),
-      Task("running tests", test.util.python3_run_tests),
-    )
-
-    println("BUG: python3_run_tests() should have terminated our process", ERROR)
-    sys.exit(1)
-
   # buffer that we log messages into so they can be printed after a test has finished
 
   logging_buffer = stem.util.log.LogBuffer(args.logging_runlevel)
@@ -296,24 +282,23 @@ def main():
 
       println()
 
-  if not stem.prereq.is_python_3():
-    static_check_issues = {}
+  static_check_issues = {}
 
-    if pyflakes_task and pyflakes_task.is_successful:
-      for path, issues in pyflakes_task.result.items():
-        for issue in issues:
-          static_check_issues.setdefault(path, []).append(issue)
-    elif not stem.util.test_tools.is_pyflakes_available():
-      println("Static error checking requires pyflakes version 0.7.3 or later. Please install it from ...\n  http://pypi.python.org/pypi/pyflakes\n", ERROR)
+  if pyflakes_task and pyflakes_task.is_successful:
+    for path, issues in pyflakes_task.result.items():
+      for issue in issues:
+        static_check_issues.setdefault(path, []).append(issue)
+  elif not stem.util.test_tools.is_pyflakes_available():
+    println("Static error checking requires pyflakes version 0.7.3 or later. Please install it from ...\n  http://pypi.python.org/pypi/pyflakes\n", ERROR)
 
-    if pep8_task and pep8_task.is_successful:
-      for path, issues in pep8_task.result.items():
-        for issue in issues:
-          static_check_issues.setdefault(path, []).append(issue)
-    elif not stem.util.test_tools.is_pep8_available():
-      println("Style checks require pep8 version 1.4.2 or later. Please install it from...\n  http://pypi.python.org/pypi/pep8\n", ERROR)
+  if pep8_task and pep8_task.is_successful:
+    for path, issues in pep8_task.result.items():
+      for issue in issues:
+        static_check_issues.setdefault(path, []).append(issue)
+  elif not stem.util.test_tools.is_pep8_available():
+    println("Style checks require pep8 version 1.4.2 or later. Please install it from...\n  http://pypi.python.org/pypi/pep8\n", ERROR)
 
-    _print_static_issues(static_check_issues)
+  _print_static_issues(static_check_issues)
 
   runtime_label = "(%i seconds)" % (time.time() - start_time)
 
@@ -354,10 +339,6 @@ def _get_args(argv):
       args['run_unit'] = True
     elif opt in ("-i", "--integ"):
       args['run_integ'] = True
-    elif opt == "--python3":
-      args['run_python3'] = True
-    elif opt == "--clean":
-      args['run_python3_clean'] = True
     elif opt in ("-t", "--targets"):
       run_targets, attribute_targets = [], []
 
diff --git a/test/util.py b/test/util.py
index 714d949..9ccb364 100644
--- a/test/util.py
+++ b/test/util.py
@@ -12,7 +12,6 @@ Helper functions for our test framework.
   get_prereq - provides the tor version required to run the given target
   get_torrc_entries - provides the torrc entries for a given target
   get_help_message - provides usage information for running our tests
-  get_python3_destination - location where a python3 copy of stem is exported to
 
 Sets of :class:`~test.util.Task` instances can be ran with
 :func:`~test.util.run_tasks`. Functions that are intended for easy use with
@@ -28,17 +27,10 @@ Tasks are...
   |- check_pep8_version - checks our version of pep8
   |- clean_orphaned_pyc - removes any *.pyc without a corresponding *.py
   +- check_for_unused_tests - checks to see if any tests are missing from our settings
-
-  Testing Python 3
-  |- python3_prereq - checks that we have python3 and 2to3
-  |- python3_clean - deletes our prior python3 export
-  |- python3_copy_stem - copies our codebase and converts with 2to3
-  +- python3_run_tests - runs python 3 tests
 """
 
 import re
 import os
-import shutil
 import sys
 
 import stem
@@ -200,17 +192,6 @@ def get_torrc_entries(target):
   return torrc_opts
 
 
-def get_python3_destination():
-  """
-  Provides the location where a python 3 copy of stem is exported to for
-  testing.
-
-  :returns: **str** with the relative path to our python 3 location
-  """
-
-  return os.path.join(CONFIG['integ.test_directory'], 'python3')
-
-
 def check_stem_version():
   return stem.__version__
 
@@ -301,55 +282,6 @@ def check_for_unused_tests(paths):
     raise ValueError('Test modules are missing from our test/settings.cfg:\n%s' % '\n'.join(unused_tests))
 
 
-def python3_prereq():
-  for required_cmd in ('2to3', 'python3'):
-    if not stem.util.system.is_available(required_cmd):
-      raise ValueError("Unable to test python 3 because %s isn't in your path" % required_cmd)
-
-
-def python3_clean(skip = False):
-  location = get_python3_destination()
-
-  if not os.path.exists(location):
-    return 'skipped'
-  elif skip:
-    return ["Reusing '%s'. Run again with '--clean' if you want a fresh copy." % location]
-  else:
-    shutil.rmtree(location, ignore_errors = True)
-    return 'done'
-
-
-def python3_copy_stem():
-  destination = get_python3_destination()
-
-  if os.path.exists(destination):
-    return 'skipped'
-
-  # skips the python3 destination (to avoid an infinite loop)
-  def _ignore(src, names):
-    if src == os.path.normpath(destination):
-      return names
-    else:
-      return []
-
-  os.makedirs(destination)
-  shutil.copytree('stem', os.path.join(destination, 'stem'))
-  shutil.copytree('test', os.path.join(destination, 'test'), ignore = _ignore)
-  shutil.copy('run_tests.py', os.path.join(destination, 'run_tests.py'))
-  stem.util.system.call('2to3 --write --nobackups --no-diffs %s' % get_python3_destination())
-
-  return 'done'
-
-
-def python3_run_tests():
-  println()
-  println()
-
-  python3_runner = os.path.join(get_python3_destination(), 'run_tests.py')
-  exit_status = os.system('python3 %s %s' % (python3_runner, ' '.join(sys.argv[1:])))
-  sys.exit(exit_status)
-
-
 def _is_test_data(path):
   return os.path.normpath(CONFIG['integ.test_directory']) in path
 





More information about the tor-commits mailing list