[tor-commits] [stem/master] Replace skip helper with builtin

atagar at torproject.org atagar at torproject.org
Thu Apr 6 18:38:22 UTC 2017


commit 0faa9dc5af392bad7a4c0fa73e28a5c186b65e9c
Author: Damian Johnson <atagar at torproject.org>
Date:   Wed Apr 5 11:02:01 2017 -0700

    Replace skip helper with builtin
    
    Long ago I added a skip helper because python 2.6 doesn't have this method. Now
    that we vend a TimedTestRunner we can add this capability directly to that.
    This will make removal of python 2.6 support easier later (all we gotta do is
    drop the unnecessary return statements).
---
 stem/util/test_tools.py                       |  7 ++
 test/integ/control/base_controller.py         |  9 +--
 test/integ/control/controller.py              |  9 ++-
 test/integ/descriptor/extrainfo_descriptor.py |  3 +-
 test/integ/descriptor/microdescriptor.py      |  3 +-
 test/integ/descriptor/networkstatus.py        |  9 ++-
 test/integ/descriptor/remote.py               |  3 +-
 test/integ/descriptor/server_descriptor.py    |  3 +-
 test/integ/installation.py                    |  7 +-
 test/integ/manual.py                          |  3 +-
 test/integ/process.py                         |  3 +-
 test/integ/util/connection.py                 |  7 +-
 test/integ/util/proc.py                       | 19 +++---
 test/integ/util/system.py                     | 97 ++++++++++++++-------------
 test/integ/version.py                         |  7 +-
 test/unit/descriptor/export.py                |  5 +-
 test/unit/descriptor/reader.py                | 11 ++-
 test/unit/installation.py                     |  6 +-
 test/unit/manual.py                           | 12 ++--
 test/unit/tutorial_examples.py                |  3 +-
 test/util.py                                  | 25 ++-----
 21 files changed, 109 insertions(+), 142 deletions(-)

diff --git a/stem/util/test_tools.py b/stem/util/test_tools.py
index 2600413..0b44d3a 100644
--- a/stem/util/test_tools.py
+++ b/stem/util/test_tools.py
@@ -71,6 +71,13 @@ class TimedTestRunner(unittest.TextTestRunner):
           TEST_RUNTIMES[self.id()] = time.time() - start_time
           return result
 
+        # TODO: remove and drop unnecessary 'returns' when dropping python 2.6
+        # support
+
+        def skipTest(self, message):
+          if not stem.prereq._is_python_26():
+            return super(original_type, self).skipTest(message)
+
         # TODO: remove when dropping python 2.6 support
 
         def assertRaisesRegexp(self, exc_type, exc_msg, func, *args, **kwargs):
diff --git a/test/integ/control/base_controller.py b/test/integ/control/base_controller.py
index 78e6e3e..0a51e1f 100644
--- a/test/integ/control/base_controller.py
+++ b/test/integ/control/base_controller.py
@@ -14,10 +14,7 @@ import stem.util.system
 import test.mocking
 import test.runner
 
-from test.util import (
-  skip,
-  require_controller,
-)
+from test.util import require_controller
 
 
 class StateObserver(object):
@@ -50,7 +47,7 @@ class TestBaseController(unittest.TestCase):
     """
 
     if stem.util.system.is_mac():
-      skip(self, '(ticket #6235)')
+      self.skipTest('(ticket #6235)')
       return
 
     with test.runner.get_runner().get_tor_socket() as control_socket:
@@ -100,7 +97,7 @@ class TestBaseController(unittest.TestCase):
     """
 
     if stem.util.system.is_mac():
-      skip(self, '(ticket #6235)')
+      self.skipTest('(ticket #6235)')
       return
 
     with test.runner.get_runner().get_tor_socket() as control_socket:
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index 877c40b..48a50fe 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -30,7 +30,6 @@ from stem.version import Requirement
 from test.util import (
   register_new_capability,
   tor_version,
-  skip,
   only_run_once,
   require_controller,
   require_version,
@@ -1126,7 +1125,7 @@ class TestController(unittest.TestCase):
     runner = test.runner.get_runner()
 
     if not os.path.exists(runner.get_test_dir('cached-descriptors')):
-      skip(self, '(no cached microdescriptors)')
+      self.skipTest('(no cached microdescriptors)')
       return
 
     with runner.get_tor_controller() as controller:
@@ -1148,7 +1147,7 @@ class TestController(unittest.TestCase):
     runner = test.runner.get_runner()
 
     if tor_version() >= Requirement.MICRODESCRIPTOR_IS_DEFAULT:
-      skip(self, '(requires server descriptors)')
+      self.skipTest('(requires server descriptors)')
       return
 
     with runner.get_tor_controller() as controller:
@@ -1178,7 +1177,7 @@ class TestController(unittest.TestCase):
     runner = test.runner.get_runner()
 
     if tor_version() >= Requirement.MICRODESCRIPTOR_IS_DEFAULT:
-      skip(self, '(requires server descriptors)')
+      self.skipTest('(requires server descriptors)')
       return
 
     with runner.get_tor_controller() as controller:
@@ -1358,7 +1357,7 @@ class TestController(unittest.TestCase):
 
       if TEST_ROUTER_STATUS_ENTRY is None:
         # this is only likely to occure if we can't get descriptors
-        skip(self, '(no named relays)')
+        self.skipTest('(no named relays)')
         return
 
     return TEST_ROUTER_STATUS_ENTRY
diff --git a/test/integ/descriptor/extrainfo_descriptor.py b/test/integ/descriptor/extrainfo_descriptor.py
index 2ac44fe..6ea2b16 100644
--- a/test/integ/descriptor/extrainfo_descriptor.py
+++ b/test/integ/descriptor/extrainfo_descriptor.py
@@ -10,7 +10,6 @@ import test.runner
 
 from test.util import (
   register_new_capability,
-  skip,
   only_run_once,
 )
 
@@ -27,7 +26,7 @@ class TestExtraInfoDescriptor(unittest.TestCase):
     descriptor_path = test.runner.get_runner().get_test_dir('cached-extrainfo')
 
     if not os.path.exists(descriptor_path):
-      skip(self, '(no cached descriptors)')
+      self.skipTest('(no cached descriptors)')
       return
 
     with open(descriptor_path, 'rb') as descriptor_file:
diff --git a/test/integ/descriptor/microdescriptor.py b/test/integ/descriptor/microdescriptor.py
index b1796c2..97127d6 100644
--- a/test/integ/descriptor/microdescriptor.py
+++ b/test/integ/descriptor/microdescriptor.py
@@ -10,7 +10,6 @@ import test.runner
 
 from test.util import (
   register_new_capability,
-  skip,
   only_run_once,
 )
 
@@ -27,7 +26,7 @@ class TestMicrodescriptor(unittest.TestCase):
     descriptor_path = test.runner.get_runner().get_test_dir('cached-microdescs')
 
     if not os.path.exists(descriptor_path):
-      skip(self, '(no cached microdescriptors)')
+      self.skipTest('(no cached microdescriptors)')
       return
 
     with open(descriptor_path, 'rb') as descriptor_file:
diff --git a/test/integ/descriptor/networkstatus.py b/test/integ/descriptor/networkstatus.py
index e6bdce2..72d503a 100644
--- a/test/integ/descriptor/networkstatus.py
+++ b/test/integ/descriptor/networkstatus.py
@@ -13,7 +13,6 @@ import test.runner
 
 from test.util import (
   register_new_capability,
-  skip,
   only_run_once,
 )
 
@@ -28,13 +27,13 @@ class TestNetworkStatus(unittest.TestCase):
     consensus_path = test.runner.get_runner().get_test_dir('cached-consensus')
 
     if not os.path.exists(consensus_path):
-      skip(self, '(no cached-consensus)')
+      self.skipTest('(no cached-consensus)')
       return
     elif stem.util.system.is_windows():
       # Unable to check memory usage on windows, so can't prevent hanging the
       # system if things go bad.
 
-      skip(self, '(unavailable on windows)')
+      self.skipTest('(unavailable on windows)')
       return
 
     count, reported_flags = 0, []
@@ -65,10 +64,10 @@ class TestNetworkStatus(unittest.TestCase):
     consensus_path = test.runner.get_runner().get_test_dir('cached-microdesc-consensus')
 
     if not os.path.exists(consensus_path):
-      skip(self, '(no cached-microdesc-consensus)')
+      self.skipTest('(no cached-microdesc-consensus)')
       return
     elif stem.util.system.is_windows():
-      skip(self, '(unavailable on windows)')
+      self.skipTest('(unavailable on windows)')
       return
 
     count, reported_flags = 0, []
diff --git a/test/integ/descriptor/remote.py b/test/integ/descriptor/remote.py
index cd18187..b873b96 100644
--- a/test/integ/descriptor/remote.py
+++ b/test/integ/descriptor/remote.py
@@ -12,7 +12,6 @@ import stem.descriptor.router_status_entry
 import stem.descriptor.server_descriptor
 
 from test.util import (
-  skip,
   only_run_once,
   require_online,
 )
@@ -247,7 +246,7 @@ class TestDescriptorDownloader(unittest.TestCase):
     # Don't run this test by default. Once upon a time it was fine, but tor has
     # added so many fallbacks now that this takes a looong time. :(
 
-    skip(self, '(skipped by default)')
+    self.skipTest('(skipped by default)')
     return
 
     unsuccessful = {}
diff --git a/test/integ/descriptor/server_descriptor.py b/test/integ/descriptor/server_descriptor.py
index 302cef1..bd61e70 100644
--- a/test/integ/descriptor/server_descriptor.py
+++ b/test/integ/descriptor/server_descriptor.py
@@ -11,7 +11,6 @@ import test.runner
 
 from test.util import (
   register_new_capability,
-  skip,
   only_run_once,
 )
 
@@ -28,7 +27,7 @@ class TestServerDescriptor(unittest.TestCase):
     descriptor_path = test.runner.get_runner().get_test_dir('cached-descriptors')
 
     if not os.path.exists(descriptor_path):
-      skip(self, '(no cached descriptors)')
+      self.skipTest('(no cached descriptors)')
       return
 
     with open(descriptor_path, 'rb') as descriptor_file:
diff --git a/test/integ/installation.py b/test/integ/installation.py
index 72f2df4..ad21fd0 100644
--- a/test/integ/installation.py
+++ b/test/integ/installation.py
@@ -11,10 +11,7 @@ import stem.util.system
 
 import test.util
 
-from test.util import (
-  skip,
-  only_run_once,
-)
+from test.util import only_run_once
 
 INSTALL_MISMATCH_MSG = "Running 'python setup.py sdist' doesn't match our git contents in the following way. The manifest in our setup.py may need to be updated...\n\n"
 
@@ -134,7 +131,7 @@ class TestInstallation(unittest.TestCase):
     """
 
     if not stem.util.system.is_available('git'):
-      skip(self, '(git unavailable)')
+      self.skipTest('(git unavailable)')
       return
 
     setup().join()
diff --git a/test/integ/manual.py b/test/integ/manual.py
index 187cde9..f9d4dbd 100644
--- a/test/integ/manual.py
+++ b/test/integ/manual.py
@@ -13,7 +13,6 @@ import stem.util.system
 import test.runner
 
 from stem.manual import Category
-from test.util import skip
 
 EXPECTED_CATEGORIES = set([
   'NAME',
@@ -120,7 +119,7 @@ class TestManual(unittest.TestCase):
 
   def requires_downloaded_manual(self):
     if self.skip_reason:
-      skip(self, self.skip_reason)
+      self.skipTest(self.skip_reason)
       return True
     elif self.download_error:
       self.fail(self.download_error)
diff --git a/test/integ/process.py b/test/integ/process.py
index 4cc79e3..e77fdfb 100644
--- a/test/integ/process.py
+++ b/test/integ/process.py
@@ -23,7 +23,6 @@ import stem.version
 import test.runner
 
 from test.util import (
-  skip,
   require_controller,
   require_version,
 )
@@ -441,7 +440,7 @@ class TestProcess(unittest.TestCase):
     """
 
     if not stem.util.system.is_available('sleep'):
-      skip(self, "('sleep' command is unavailable)")
+      self.skipTest("('sleep' command is unavailable)")
       return
 
     sleep_process = subprocess.Popen(['sleep', '60'])
diff --git a/test/integ/util/connection.py b/test/integ/util/connection.py
index 1145169..63f62ff 100644
--- a/test/integ/util/connection.py
+++ b/test/integ/util/connection.py
@@ -8,7 +8,6 @@ import unittest
 import test.runner
 
 from stem.util.connection import Resolver, get_connections, system_resolvers
-from test.util import skip
 
 
 class TestConnection(unittest.TestCase):
@@ -16,13 +15,13 @@ class TestConnection(unittest.TestCase):
     runner = test.runner.get_runner()
 
     if test.runner.Torrc.PORT not in runner.get_options():
-      skip(self, '(no control port)')
+      self.skipTest('(no control port)')
       return
     elif not runner.is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment set)')
+      self.skipTest('(DisableDebuggerAttachment set)')
       return
     elif resolver not in system_resolvers():
-      skip(self, '(resolver unavailable on this platform)')
+      self.skipTest('(resolver unavailable on this platform)')
       return
 
     with runner.get_tor_socket():
diff --git a/test/integ/util/proc.py b/test/integ/util/proc.py
index 4671b3d..a7e798d 100644
--- a/test/integ/util/proc.py
+++ b/test/integ/util/proc.py
@@ -9,7 +9,6 @@ import unittest
 import test.runner
 
 from stem.util import proc
-from test.util import skip
 
 
 class TestProc(unittest.TestCase):
@@ -19,10 +18,10 @@ class TestProc(unittest.TestCase):
     """
 
     if not proc.is_available():
-      skip(self, '(proc unavailable)')
+      self.skipTest('(proc unavailable)')
       return
     elif not test.runner.get_runner().is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
 
     runner = test.runner.get_runner()
@@ -35,7 +34,7 @@ class TestProc(unittest.TestCase):
     """
 
     if not proc.is_available():
-      skip(self, '(proc unavailable)')
+      self.skipTest('(proc unavailable)')
       return
 
     tor_pid = test.runner.get_runner().get_pid()
@@ -47,7 +46,7 @@ class TestProc(unittest.TestCase):
     """
 
     if not proc.is_available():
-      skip(self, '(proc unavailable)')
+      self.skipTest('(proc unavailable)')
       return
 
     tor_pid = test.runner.get_runner().get_pid()
@@ -63,7 +62,7 @@ class TestProc(unittest.TestCase):
     """
 
     if not proc.is_available():
-      skip(self, '(proc unavailable)')
+      self.skipTest('(proc unavailable)')
       return
 
     tor_cmd = test.runner.get_runner().get_tor_command(True)
@@ -84,16 +83,16 @@ class TestProc(unittest.TestCase):
     runner = test.runner.get_runner()
 
     if not proc.is_available():
-      skip(self, '(proc unavailable)')
+      self.skipTest('(proc unavailable)')
       return
     elif test.runner.Torrc.PORT not in runner.get_options():
-      skip(self, '(no control port)')
+      self.skiTestp('(no control port)')
       return
     elif not test.runner.get_runner().is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
     elif not os.access('/proc/net/tcp', os.R_OK) or not os.access('/proc/net/udp', os.R_OK):
-      skip(self, '(proc lacks read permissions)')
+      self.skipTest('(proc lacks read permissions)')
       return
 
     # making a controller connection so that we have something to query for
diff --git a/test/integ/util/system.py b/test/integ/util/system.py
index eee2ccb..973c3cb 100644
--- a/test/integ/util/system.py
+++ b/test/integ/util/system.py
@@ -12,8 +12,6 @@ import stem.util.proc
 import stem.util.system
 import test.runner
 
-from test.util import skip
-
 try:
   # added in python 3.3
   from unittest.mock import Mock, patch
@@ -69,7 +67,7 @@ class TestSystem(unittest.TestCase):
     """
 
     if not stem.util.system.is_available('ps'):
-      skip(self, '(ps unavailable)')
+      self.skipTest('(ps unavailable)')
       return
 
     # Check to see if the command we started tor with is running. The process
@@ -87,7 +85,7 @@ class TestSystem(unittest.TestCase):
     """
 
     if self._is_extra_tor_running():
-      skip(self, '(multiple tor instances)')
+      self.skipTest('(multiple tor instances)')
       return
 
     tor_pid = test.runner.get_runner().get_pid()
@@ -101,10 +99,10 @@ class TestSystem(unittest.TestCase):
     """
 
     if self._is_extra_tor_running():
-      skip(self, '(multiple tor instances)')
+      self.skipTest('(multiple tor instances)')
       return
     elif not stem.util.system.is_available('pgrep'):
-      skip(self, '(pgrep unavailable)')
+      self.skipTest('(pgrep unavailable)')
       return
 
     pgrep_prefix = stem.util.system.GET_PID_BY_NAME_PGREP % ''
@@ -124,10 +122,10 @@ class TestSystem(unittest.TestCase):
     """
 
     if self._is_extra_tor_running():
-      skip(self, '(multiple tor instances)')
+      self.skipTest('(multiple tor instances)')
       return
     elif not stem.util.system.is_available('pidof'):
-      skip(self, '(pidof unavailable)')
+      self.skipTest('(pidof unavailable)')
       return
 
     pidof_prefix = stem.util.system.GET_PID_BY_NAME_PIDOF % ''
@@ -147,13 +145,13 @@ class TestSystem(unittest.TestCase):
     """
 
     if self._is_extra_tor_running():
-      skip(self, '(multiple tor instances)')
+      self.skipTest('(multiple tor instances)')
       return
     elif not stem.util.system.is_available('ps'):
-      skip(self, '(ps unavailable)')
+      self.skipTest('(ps unavailable)')
       return
     elif stem.util.system.is_bsd():
-      skip(self, '(linux only)')
+      self.skipTest('(linux only)')
       return
 
     ps_prefix = stem.util.system.GET_PID_BY_NAME_PS_LINUX % ''
@@ -173,13 +171,13 @@ class TestSystem(unittest.TestCase):
     """
 
     if self._is_extra_tor_running():
-      skip(self, '(multiple tor instances)')
+      self.skipTest('(multiple tor instances)')
       return
     elif not stem.util.system.is_available('ps'):
-      skip(self, '(ps unavailable)')
+      self.skipTest('(ps unavailable)')
       return
     elif not stem.util.system.is_bsd():
-      skip(self, '(bsd only)')
+      self.skipTest('(bsd only)')
       return
 
     ps_prefix = stem.util.system.GET_PID_BY_NAME_PS_BSD
@@ -200,13 +198,13 @@ class TestSystem(unittest.TestCase):
 
     runner = test.runner.get_runner()
     if self._is_extra_tor_running():
-      skip(self, '(multiple tor instances)')
+      self.skipTest('(multiple tor instances)')
       return
     elif not stem.util.system.is_available('lsof'):
-      skip(self, '(lsof unavailable)')
+      self.skipTest('(lsof unavailable)')
       return
     elif not runner.is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
 
     lsof_prefix = stem.util.system.GET_PID_BY_NAME_LSOF % ''
@@ -229,10 +227,10 @@ class TestSystem(unittest.TestCase):
     """
 
     if self._is_extra_tor_running():
-      skip(self, '(multiple tor instances)')
+      self.skipTest('(multiple tor instances)')
       return
     elif not stem.util.system.is_available('tasklist'):
-      skip(self, '(tasklist unavailable)')
+      self.skipTest('(tasklist unavailable)')
       return
 
     runner = test.runner.get_runner()
@@ -245,21 +243,21 @@ class TestSystem(unittest.TestCase):
 
     runner = test.runner.get_runner()
     if stem.util.system.is_windows():
-      skip(self, '(unavailable on windows)')
+      self.skipTest('(unavailable on windows)')
       return
     elif not _has_port():
-      skip(self, '(test instance has no port)')
+      self.skipTest('(test instance has no port)')
       return
     elif stem.util.system.is_mac() or stem.util.system.is_gentoo():
-      skip(self, '(resolvers unavailable)')
+      self.skipTest('(resolvers unavailable)')
       return
     elif not runner.is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
     elif not (stem.util.system.is_available('netstat') or
               stem.util.system.is_available('sockstat') or
               stem.util.system.is_available('lsof')):
-      skip(self, '(connection resolvers unavailable)')
+      self.skipTest('(connection resolvers unavailable)')
       return
 
     tor_pid, tor_port = runner.get_pid(), test.runner.CONTROL_PORT
@@ -272,20 +270,21 @@ class TestSystem(unittest.TestCase):
     """
 
     runner = test.runner.get_runner()
+
     if not _has_port():
-      skip(self, '(test instance has no port)')
+      self.skipTest('(test instance has no port)')
       return
     elif not stem.util.system.is_available('netstat'):
-      skip(self, '(netstat unavailable)')
+      self.skipTest('(netstat unavailable)')
       return
     elif stem.util.system.is_bsd() or stem.util.system.is_windows():
-      skip(self, '(linux only)')
+      self.skipTest('(linux only)')
       return
     elif stem.util.system.is_gentoo():
-      skip(self, '(unavailable on gentoo)')
+      self.skipTest('(unavailable on gentoo)')
       return
     elif not runner.is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
 
     netstat_prefix = stem.util.system.GET_PID_BY_PORT_NETSTAT
@@ -304,17 +303,18 @@ class TestSystem(unittest.TestCase):
     """
 
     runner = test.runner.get_runner()
+
     if not _has_port():
-      skip(self, '(test instance has no port)')
+      self.skipTest('(test instance has no port)')
       return
     elif not stem.util.system.is_available('sockstat'):
-      skip(self, '(sockstat unavailable)')
+      self.skipTest('(sockstat unavailable)')
       return
     elif not stem.util.system.is_bsd():
-      skip(self, '(bsd only)')
+      self.skipTest('(bsd only)')
       return
     elif not runner.is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
 
     sockstat_prefix = stem.util.system.GET_PID_BY_PORT_SOCKSTAT % ''
@@ -333,17 +333,18 @@ class TestSystem(unittest.TestCase):
     """
 
     runner = test.runner.get_runner()
+
     if not _has_port():
-      skip(self, '(test instance has no port)')
+      self.skipTest('(test instance has no port)')
       return
     elif not stem.util.system.is_available('lsof'):
-      skip(self, '(lsof unavailable)')
+      self.skipTest('(lsof unavailable)')
       return
     elif stem.util.system.is_mac() or stem.util.system.is_gentoo():
-      skip(self, '(resolvers unavailable)')
+      self.skipTest('(resolvers unavailable)')
       return
     elif not runner.is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
 
     lsof_prefix = stem.util.system.GET_PID_BY_PORT_LSOF
@@ -387,10 +388,10 @@ class TestSystem(unittest.TestCase):
     runner = test.runner.get_runner()
 
     if stem.util.system.is_windows():
-      skip(self, '(unavailable on windows)')
+      self.skipTest('(unavailable on windows)')
       return
     elif not runner.is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
 
     runner_pid, tor_cwd = runner.get_pid(), runner.get_tor_cwd()
@@ -405,10 +406,10 @@ class TestSystem(unittest.TestCase):
     runner = test.runner.get_runner()
 
     if not stem.util.system.is_available('pwdx'):
-      skip(self, '(pwdx unavailable)')
+      self.skipTest('(pwdx unavailable)')
       return
     elif not runner.is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
 
     # filter the call function to only allow this command
@@ -431,10 +432,10 @@ class TestSystem(unittest.TestCase):
     runner = test.runner.get_runner()
 
     if not stem.util.system.is_available('lsof'):
-      skip(self, '(lsof unavailable)')
+      self.skipTest('(lsof unavailable)')
       return
     elif not runner.is_ptraceable():
-      skip(self, '(DisableDebuggerAttachment is set)')
+      self.skipTest('(DisableDebuggerAttachment is set)')
       return
 
     # filter the call function to only allow this command
@@ -464,7 +465,7 @@ class TestSystem(unittest.TestCase):
     """
 
     if not stem.util.proc.is_available():
-      skip(self, '(proc unavailable)')
+      self.skipTest('(proc unavailable)')
       return
 
     call_replacement = filter_system_call(['ps '])
@@ -484,7 +485,7 @@ class TestSystem(unittest.TestCase):
     """
 
     if not stem.util.system.is_available('ps'):
-      skip(self, '(ps unavailable)')
+      self.skipTest('(ps unavailable)')
       return
 
     pid = test.runner.get_runner().get_pid()
@@ -505,7 +506,7 @@ class TestSystem(unittest.TestCase):
     """
 
     if not stem.util.proc.is_available():
-      skip(self, '(proc unavailable)')
+      self.skipTest('(proc unavailable)')
       return
 
     call_replacement = filter_system_call(['ps '])
@@ -523,7 +524,7 @@ class TestSystem(unittest.TestCase):
     """
 
     if not stem.util.system.is_available('ps'):
-      skip(self, '(ps unavailable)')
+      self.skipTest('(ps unavailable)')
       return
 
     pid = test.runner.get_runner().get_pid()
@@ -553,7 +554,7 @@ class TestSystem(unittest.TestCase):
     #   '/root'
 
     if getpass.getuser() == 'root':
-      skip(self, '(running as root)')
+      self.skipTest('(running as root)')
       return
 
     self.assertEqual(os.getcwd(), stem.util.system.expand_path('.'))
diff --git a/test/integ/version.py b/test/integ/version.py
index 06837c7..35e016a 100644
--- a/test/integ/version.py
+++ b/test/integ/version.py
@@ -9,10 +9,7 @@ import stem.prereq
 import stem.version
 import test.runner
 
-from test.util import (
-  skip,
-  require_controller,
-)
+from test.util import require_controller
 
 
 class TestVersion(unittest.TestCase):
@@ -22,7 +19,7 @@ class TestVersion(unittest.TestCase):
     """
 
     if not stem.util.system.is_available('tor'):
-      skip(self, "(tor isn't in our path)")
+      self.skipTest("(tor isn't in our path)")
       return
 
     # Since tor is in our path we should expect to be able to get the version
diff --git a/test/unit/descriptor/export.py b/test/unit/descriptor/export.py
index ae7e4a0..a262343 100644
--- a/test/unit/descriptor/export.py
+++ b/test/unit/descriptor/export.py
@@ -12,7 +12,6 @@ except ImportError:
 import stem.prereq
 
 from stem.descriptor.export import export_csv, export_csv_file
-from test.util import skip
 
 from test.mocking import (
   get_relay_server_descriptor,
@@ -27,7 +26,7 @@ class TestExport(unittest.TestCase):
     """
 
     if stem.prereq._is_python_26():
-      skip(self, '(header added in python 2.7)')
+      self.skipTest('(header added in python 2.7)')
       return
 
     desc = get_relay_server_descriptor()
@@ -76,7 +75,7 @@ class TestExport(unittest.TestCase):
     """
 
     if stem.prereq._is_python_26():
-      skip(self, '(header added in python 2.7)')
+      self.skipTest('(header added in python 2.7)')
       return
 
     desc = get_relay_server_descriptor()
diff --git a/test/unit/descriptor/reader.py b/test/unit/descriptor/reader.py
index ac7fd83..ad6a425 100644
--- a/test/unit/descriptor/reader.py
+++ b/test/unit/descriptor/reader.py
@@ -17,7 +17,6 @@ import stem.descriptor.reader
 import test.unit.descriptor
 
 from stem.util import str_type, system
-from test.util import skip
 
 try:
   # added in python 3.3
@@ -191,7 +190,7 @@ class TestDescriptorReader(unittest.TestCase):
     # test relies on being unable to read a file
 
     if getpass.getuser() == 'root':
-      skip(self, '(running as root)')
+      self.skipTest('(running as root)')
       return
 
     # Skip the test on windows, since you can only set the file's
@@ -199,7 +198,7 @@ class TestDescriptorReader(unittest.TestCase):
     # http://docs.python.org/library/os.html#os.chmod
 
     if system.is_windows():
-      skip(self, '(chmod not functional)')
+      self.skipTest('(chmod not functional)')
 
     test_listing_path = self._make_processed_files_listing(BASIC_LISTING)
     os.chmod(test_listing_path, 0o077)  # remove read permissions
@@ -413,7 +412,7 @@ class TestDescriptorReader(unittest.TestCase):
     # Skip on windows since SIGALRM is unavailable
 
     if system.is_windows():
-      skip(self, '(SIGALRM unavailable)')
+      self.skipTest('(SIGALRM unavailable)')
 
     is_test_running = True
     reader = stem.descriptor.reader.DescriptorReader('/usr')
@@ -550,10 +549,10 @@ class TestDescriptorReader(unittest.TestCase):
     # test relies on being unable to read a file
 
     if getpass.getuser() == 'root':
-      skip(self, '(running as root)')
+      self.skipTest('(running as root)')
       return
     elif system.is_windows():
-      skip(self, '(chmod not functional)')
+      self.skipTest('(chmod not functional)')
       return
 
     test_path = os.path.join(self.temp_directory, 'secret_file')
diff --git a/test/unit/installation.py b/test/unit/installation.py
index 83d560a..73881de 100644
--- a/test/unit/installation.py
+++ b/test/unit/installation.py
@@ -5,8 +5,6 @@ import unittest
 
 import test.util
 
-from test.util import skip
-
 
 class TestInstallation(unittest.TestCase):
   # TODO: remove when dropping support for python 2.6
@@ -26,7 +24,7 @@ class TestInstallation(unittest.TestCase):
 
   def test_installs_all_modules(self):
     if self.skip_reason:
-      skip(self, self.skip_reason)
+      self.skipTest(self.skip_reason)
       return True
 
     # Modules cited my our setup.py looks like...
@@ -50,7 +48,7 @@ class TestInstallation(unittest.TestCase):
 
   def test_installs_all_data_files(self):
     if self.skip_reason:
-      skip(self, self.skip_reason)
+      self.skipTest(self.skip_reason)
       return True
 
     # Checking that we have all non-source files. Data looks like...
diff --git a/test/unit/manual.py b/test/unit/manual.py
index deded2d..6d0c174 100644
--- a/test/unit/manual.py
+++ b/test/unit/manual.py
@@ -12,8 +12,6 @@ import stem.prereq
 import stem.manual
 import stem.util.system
 
-from test.util import skip
-
 try:
   # account for urllib's change between python 2.x and 3.x
   import urllib.request as urllib
@@ -160,10 +158,10 @@ class TestManual(unittest.TestCase):
     """
 
     if not stem.util.system.is_available('man'):
-      skip(self, '(require man command)')
+      self.skipTest('(require man command)')
       return
     elif stem.util.system.is_mac():
-      skip(self, '(man lacks --encoding arg on OSX, #18660)')
+      self.skipTest('(man lacks --encoding arg on OSX, #18660)')
       return
 
     manual = stem.manual.Manual.from_man(EXAMPLE_MAN_PATH)
@@ -183,10 +181,10 @@ class TestManual(unittest.TestCase):
     """
 
     if not stem.util.system.is_available('man'):
-      skip(self, '(require man command)')
+      self.skipTest('(require man command)')
       return
     elif stem.util.system.is_mac():
-      skip(self, '(man lacks --encoding arg on OSX, #18660)')
+      self.skipTest('(man lacks --encoding arg on OSX, #18660)')
       return
 
     manual = stem.manual.Manual.from_man(UNKNOWN_OPTIONS_MAN_PATH)
@@ -213,7 +211,7 @@ class TestManual(unittest.TestCase):
     """
 
     if not stem.util.system.is_available('man'):
-      skip(self, '(require man command)')
+      self.skipTest('(require man command)')
       return
 
     manual = stem.manual.Manual.from_man(EXAMPLE_MAN_PATH)
diff --git a/test/unit/tutorial_examples.py b/test/unit/tutorial_examples.py
index bf313ce..de5079e 100644
--- a/test/unit/tutorial_examples.py
+++ b/test/unit/tutorial_examples.py
@@ -21,7 +21,6 @@ from stem.descriptor.remote import DIRECTORY_AUTHORITIES
 
 from test import mocking
 from test.unit import exec_documentation_example
-from test.util import skip
 
 from test.mocking import (
   get_relay_server_descriptor,
@@ -247,7 +246,7 @@ class TestTutorialExamples(unittest.TestCase):
       # example imports OrderedDict from collections which doesn't work under
       # python 2.6
 
-      skip(self, "(example doesn't support python 2.6)")
+      self.skipTest("(example doesn't support python 2.6)")
       return
 
     get_authorities_mock().items.return_value = [('moria1', DIRECTORY_AUTHORITIES['moria1']), ('maatuska', DIRECTORY_AUTHORITIES['maatuska'])]
diff --git a/test/util.py b/test/util.py
index 75ea50e..2468b55 100644
--- a/test/util.py
+++ b/test/util.py
@@ -18,8 +18,7 @@ Tasks are...
 
 ::
 
-  Test Skipping
-  |- skip - skips the current test if we can
+  Test Requirements
   |- only_run_once - skip test if it has been ran before
   |- require - skips the test unless a requirement is met
   |
@@ -220,20 +219,6 @@ def get_new_capabilities():
   return NEW_CAPABILITIES
 
 
-def skip(test_case, message):
-  """
-  Skips the test if we can. The capability for skipping tests was added in
-  python 2.7 so callers should return after this, so they report 'success' if
-  this method is unavailable.
-
-  :param unittest.TestCase test_case: test being ran
-  :param str message: message to skip the test with
-  """
-
-  if not stem.prereq._is_python_26():
-    test_case.skipTest(message)
-
-
 def only_run_once(func):
   """
   Skips the test if it has ran before. If it hasn't then flags it as being ran.
@@ -246,7 +231,7 @@ def only_run_once(func):
       RAN_TESTS.append(self.id())
       return func(self, *args, **kwargs)
     else:
-      skip(self, '(already ran)')
+      self.skipTest('(already ran)')
 
   return wrapped
 
@@ -261,7 +246,7 @@ def require(condition, message):
       if condition():
         return func(self, *args, **kwargs)
       else:
-        skip(self, '(%s)' % message)
+        self.skipTest('(%s)' % message)
 
     return wrapped
 
@@ -281,7 +266,7 @@ def require_controller(func):
     if test.runner.get_runner().is_accessible():
       return func(self, *args, **kwargs)
     else:
-      skip(self, '(no connection)')
+      self.skipTest('(no connection)')
 
   return wrapped
 
@@ -306,7 +291,7 @@ def require_online(func):
     if Target.ONLINE in test.runner.get_runner().attribute_targets:
       return func(self, *args, **kwargs)
     else:
-      skip(self, '(requires online target)')
+      self.skipTest('(requires online target)')
 
   return wrapped
 





More information about the tor-commits mailing list