[tor-commits] [stem/master] Missing is_available() mocks for unit tests
atagar at torproject.org
atagar at torproject.org
Sun Dec 6 22:39:45 UTC 2015
commit 734a7ebc496d1aaa6fa0a852a97a2b7232ba6370
Author: Damian Johnson <atagar at torproject.org>
Date: Sun Dec 6 14:42:11 2015 -0800
Missing is_available() mocks for unit tests
Our jenkins tests are presently failing in quite a few ways. First addressing
some of the easiest ones about a2x not being present...
======================================================================
ERROR: test_download_man_page_when_successful
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/mock.py", line 1224, in patched
return func(*args, **keywargs)
File "/srv/jenkins-workspace/workspace/stem-tor-ci/test/unit/manual.py", line 214, in test_download_man_page_when_successful
stem.manual.download_man_page(file_handle = output)
File "/srv/jenkins-workspace/workspace/stem-tor-ci/stem/manual.py", line 196, in download_man_page
raise IOError('We require a2x from asciidoc to provide a man page')
IOError: We require a2x from asciidoc to provide a man page
======================================================================
FAIL: test_download_man_page_when_a2x_fails
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/mock.py", line 1224, in patched
return func(*args, **keywargs)
File "/srv/jenkins-workspace/workspace/stem-tor-ci/test/unit/manual.py", line 197, in test_download_man_page_when_a2x_fails
self.assertEqual("Unable to run 'a2x -f manpage /no/such/path/tor.1.txt': call failed", str(exc))
AssertionError: "Unable to run 'a2x -f manpage /no/such/path/tor.1.txt': call failed" != 'We require a2x from asciidoc to provide a man page'
======================================================================
FAIL: test_download_man_page_when_download_fails
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/mock.py", line 1224, in patched
return func(*args, **keywargs)
File "/srv/jenkins-workspace/workspace/stem-tor-ci/test/unit/manual.py", line 185, in test_download_man_page_when_download_fails
self.assertEqual("Unable to download tor's manual from https://www.atagar.com/foo/bar to /no/such/path/tor.1.txt: <urlopen error <urlopen error [Errno -2] Name or service not known>>", str(exc))
AssertionError: "Unable to download tor's manual from https://www.atagar.com/foo/bar to /no/such/path/tor.1.txt: <urlopen error <urlopen error [Errno -2] Name or service not known>>" != 'We require a2x from asciidoc to provide a man page'
======================================================================
FAIL: test_download_man_page_when_unable_to_write
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/mock.py", line 1224, in patched
return func(*args, **keywargs)
File "/srv/jenkins-workspace/workspace/stem-tor-ci/test/unit/manual.py", line 174, in test_download_man_page_when_unable_to_write
self.assertEqual("Unable to download tor's manual from https://gitweb.torproject.org/tor.git/plain/doc/tor.1.txt to /no/such/path/tor.1.txt: unable to write to file", str(exc))
AssertionError: "Unable to download tor's manual from https://gitweb.torproject.org/tor.git/plain/doc/tor.1.txt to /no/such/path/tor.1.txt: unable to write to file" != 'We require a2x from asciidoc to provide a man page'
---
test/unit/manual.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/test/unit/manual.py b/test/unit/manual.py
index 21f578d..4d9d539 100644
--- a/test/unit/manual.py
+++ b/test/unit/manual.py
@@ -166,6 +166,7 @@ class TestManual(unittest.TestCase):
@patch('tempfile.mkdtemp', Mock(return_value = '/no/such/path'))
@patch('shutil.rmtree', Mock())
@patch('stem.manual.open', Mock(side_effect = IOError('unable to write to file')), create = True)
+ @patch('stem.util.system.is_available', Mock(return_value = True))
def test_download_man_page_when_unable_to_write(self):
try:
stem.manual.download_man_page('/tmp/no_such_file')
@@ -176,6 +177,7 @@ class TestManual(unittest.TestCase):
@patch('tempfile.mkdtemp', Mock(return_value = '/no/such/path'))
@patch('shutil.rmtree', Mock())
@patch('stem.manual.open', Mock(return_value = io.BytesIO()), create = True)
+ @patch('stem.util.system.is_available', Mock(return_value = True))
@patch(URL_OPEN, Mock(side_effect = urllib.URLError('<urlopen error [Errno -2] Name or service not known>')))
def test_download_man_page_when_download_fails(self):
try:
@@ -188,6 +190,7 @@ class TestManual(unittest.TestCase):
@patch('shutil.rmtree', Mock())
@patch('stem.manual.open', Mock(return_value = io.BytesIO()), create = True)
@patch('stem.util.system.call', Mock(side_effect = OSError('call failed')))
+ @patch('stem.util.system.is_available', Mock(return_value = True))
@patch(URL_OPEN, Mock(return_value = io.BytesIO(b'test content')))
def test_download_man_page_when_a2x_fails(self):
try:
@@ -200,6 +203,7 @@ class TestManual(unittest.TestCase):
@patch('shutil.rmtree', Mock())
@patch('stem.manual.open', create = True)
@patch('stem.util.system.call')
+ @patch('stem.util.system.is_available', Mock(return_value = True))
@patch('os.path.exists', Mock(return_value = True))
@patch(URL_OPEN, Mock(return_value = io.BytesIO(b'test content')))
def test_download_man_page_when_successful(self, call_mock, open_mock):
More information about the tor-commits
mailing list