[tor-commits] [stem/master] Checking for testing prereq of mock 0.8.0
atagar at torproject.org
atagar at torproject.org
Sun Jul 7 20:37:14 UTC 2013
commit d0ce002d568627876c59c3ff23d6d86fbb049aa9
Author: Damian Johnson <atagar at torproject.org>
Date: Thu Jul 4 13:34:56 2013 -0700
Checking for testing prereq of mock 0.8.0
We had a requirement on mock 0.7.0 but it turns out that we're using a 0.8.0
feature too. Spotted this while trying to use ubuntu jaunty's apt-get
version...
Traceback (most recent call last):
File "./run_tests.py", line 405, in <module>
main()
File "./run_tests.py", line 184, in main
for test_class in test.util.get_unit_tests(args.test_prefix):
File "/home/atagar/Desktop/stem/test/util.py", line 130, in _get_tests
module = __import__(module_name)
File "/home/atagar/Desktop/stem/test/unit/tutorial.py", line 23, in <module>
class TestTutorial(unittest.TestCase):
File "/home/atagar/Desktop/stem/test/unit/tutorial.py", line 24, in TestTutorial
@patch('sys.stdout', new_callable = StringIO.StringIO)
TypeError: patch() got an unexpected keyword argument 'new_callable'
---
docs/change_log.rst | 4 ++--
run_tests.py | 2 +-
stem/prereq.py | 8 +++++++-
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/docs/change_log.rst b/docs/change_log.rst
index 635a8de..5adbd08 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -45,8 +45,8 @@ The following are only available within stem's `git repository
* :func:`~stem.control.Controller.attach_stream` could encounter an undocumented 555 response (:trac:`8701`, :spec:`7286576`)
* :class:`~stem.descriptor.server_descriptor.RelayDescriptor` digest validation was broken when dealing with non-unicode content with python 3 (:trac:`8755`)
* The :class:`~stem.control.Controller` use of cached content wasn't thread safe (:trac:`8607`)
- * Added :func:`~stem.control.Controller.get_user` method to the:class:`~stem.control.Controller`
- * Added :func:`~stem.control.Controller.get_pid` method to the:class:`~stem.control.Controller`
+ * Added :func:`~stem.control.Controller.get_user` method to the :class:`~stem.control.Controller`
+ * Added :func:`~stem.control.Controller.get_pid` method to the :class:`~stem.control.Controller`
* :class:`~stem.response.events.StreamEvent` didn't recognize IPv6 addresses (:trac:`9181`)
* **Descriptors**
diff --git a/run_tests.py b/run_tests.py
index 207b0fe..c209e1a 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -83,7 +83,7 @@ https://pypi.python.org/pypi/mock/
MOCK_OUT_OF_DATE_MSG = """\
To run stem's tests you'll need mock. You have version %s, but you need
-version 0.7.0 or later...
+version 0.8.0 or later...
https://pypi.python.org/pypi/mock/
"""
diff --git a/stem/prereq.py b/stem/prereq.py
index 25573ab..7932361 100644
--- a/stem/prereq.py
+++ b/stem/prereq.py
@@ -19,6 +19,7 @@ Checks for stem dependencies. We require python 2.6 or greater (including the
is_crypto_available - checks if the pycrypto module is available
"""
+import inspect
import sys
IS_CRYPTO_AVAILABLE = None
@@ -101,11 +102,16 @@ def is_mock_available():
try:
import mock
- # we use mock's patch.dict() which was introduced in version 0.7.0
+ # check for mock's patch.dict() which was introduced in version 0.7.0
if not hasattr(mock.patch, 'dict'):
raise ImportError()
+ # check for mock's new_callable argument for patch() which was introduced in version 0.8.0
+
+ if not 'new_callable' in inspect.getargspec(mock.patch).args:
+ raise ImportError()
+
IS_MOCK_AVAILABLE = True
except ImportError:
IS_MOCK_AVAILABLE = False
More information about the tor-commits
mailing list