[tor-commits] [stem/master] Always skip _verify_digest() when making mock descriptors
atagar at torproject.org
atagar at torproject.org
Mon Jun 9 01:59:18 UTC 2014
commit d990698937d91fa068fa11fbebc7b01a5e465cea
Author: Damian Johnson <atagar at torproject.org>
Date: Sun Jun 8 16:59:12 2014 -0700
Always skip _verify_digest() when making mock descriptors
When making mock descriptors for our tests we pretty much never want to run its
_verify_digest() since that makes our tests balk on the fake content. We were
mocking out _verify_digest() calls in each test, but it's a lot simpler to just
do this in the funciton that provides us the mock data.
---
test/mocking.py | 11 ++++++++++-
test/unit/descriptor/export.py | 12 ------------
test/unit/descriptor/server_descriptor.py | 8 --------
test/unit/tutorial.py | 1 -
4 files changed, 10 insertions(+), 22 deletions(-)
diff --git a/test/mocking.py b/test/mocking.py
index f139548..057541d 100644
--- a/test/mocking.py
+++ b/test/mocking.py
@@ -49,6 +49,12 @@ import stem.prereq
import stem.response
import stem.util.str_tools
+try:
+ # added in python 3.3
+ from unittest.mock import Mock, patch
+except ImportError:
+ from mock import Mock, patch
+
CRYPTO_BLOB = """
MIGJAoGBAJv5IIWQ+WDWYUdyA/0L8qbIkEVH/cwryZWoIaPAzINfrw1WfNZGtBmg
skFtXhOHHqTRN4GPPrZsAIUOQGzQtGb66IQgT4tO/pj+P6QmSCCdTfhvGfgTCsC+
@@ -347,7 +353,10 @@ def get_relay_server_descriptor(attr = None, exclude = (), content = False, sign
if sign_content:
desc_content = sign_descriptor_content(desc_content)
- return stem.descriptor.server_descriptor.RelayDescriptor(desc_content, validate = True)
+ with patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock()):
+ desc = stem.descriptor.server_descriptor.RelayDescriptor(desc_content, validate = True)
+
+ return desc
def get_bridge_server_descriptor(attr = None, exclude = (), content = False):
diff --git a/test/unit/descriptor/export.py b/test/unit/descriptor/export.py
index 68b4f29..55429fd 100644
--- a/test/unit/descriptor/export.py
+++ b/test/unit/descriptor/export.py
@@ -13,15 +13,8 @@ from stem.descriptor.export import export_csv, export_csv_file
from test.mocking import get_relay_server_descriptor, \
get_bridge_server_descriptor
-try:
- # added in python 3.3
- from unittest.mock import Mock, patch
-except ImportError:
- from mock import Mock, patch
-
class TestExport(unittest.TestCase):
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_minimal_descriptor(self):
"""
Exports a single minimal tor server descriptor.
@@ -42,7 +35,6 @@ class TestExport(unittest.TestCase):
expected = 'nickname,address,published\n' + expected
self.assertEquals(expected, desc_csv)
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_multiple_descriptors(self):
"""
Exports multiple descriptors, making sure that we get them back in the same
@@ -59,7 +51,6 @@ class TestExport(unittest.TestCase):
expected = '\n'.join(nicknames) + '\n'
self.assertEqual(expected, export_csv(descriptors, included_fields = ('nickname',), header = False))
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_file_output(self):
"""
Basic test for the export_csv_file() function, checking that it provides
@@ -74,7 +65,6 @@ class TestExport(unittest.TestCase):
self.assertEqual(desc_csv, csv_buffer.getvalue())
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_excludes_private_attr(self):
"""
Checks that the default attributes for our csv output doesn't include private fields.
@@ -99,7 +89,6 @@ class TestExport(unittest.TestCase):
self.assertEquals('', export_csv([]))
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_invalid_attributes(self):
"""
Attempts to make a csv with attributes that don't exist.
@@ -108,7 +97,6 @@ class TestExport(unittest.TestCase):
desc = get_relay_server_descriptor()
self.assertRaises(ValueError, export_csv, desc, ('nickname', 'blarg!'))
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_multiple_descriptor_types(self):
"""
Attempts to make a csv with multiple descriptor types.
diff --git a/test/unit/descriptor/server_descriptor.py b/test/unit/descriptor/server_descriptor.py
index c51de06..4d01219 100644
--- a/test/unit/descriptor/server_descriptor.py
+++ b/test/unit/descriptor/server_descriptor.py
@@ -26,7 +26,6 @@ except ImportError:
class TestServerDescriptor(unittest.TestCase):
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_minimal_relay_descriptor(self):
"""
Basic sanity check that we can parse a relay server descriptor with minimal
@@ -40,7 +39,6 @@ class TestServerDescriptor(unittest.TestCase):
self.assertEquals(None, desc.fingerprint)
self.assertTrue(CRYPTO_BLOB in desc.onion_key)
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_with_opt(self):
"""
Includes an 'opt <keyword> <value>' entry.
@@ -49,7 +47,6 @@ class TestServerDescriptor(unittest.TestCase):
desc = get_relay_server_descriptor({'opt': 'contact www.atagar.com/contact/'})
self.assertEquals(b'www.atagar.com/contact/', desc.contact)
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_unrecognized_line(self):
"""
Includes unrecognized content in the descriptor.
@@ -144,7 +141,6 @@ class TestServerDescriptor(unittest.TestCase):
desc = RelayDescriptor(desc_text, validate = False)
self.assertEquals(b'', desc.platform)
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_platform_for_node_tor(self):
"""
Parse a platform line belonging to a node-Tor relay.
@@ -185,7 +181,6 @@ class TestServerDescriptor(unittest.TestCase):
desc_text = get_relay_server_descriptor({'published': '2012-01-01'}, content = True)
self._expect_invalid_attr(desc_text, 'published')
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_read_and_write_history(self):
"""
Parses a read-history and write-history entry. This is now a deprecated
@@ -209,7 +204,6 @@ class TestServerDescriptor(unittest.TestCase):
self.assertEquals(900, attr[1])
self.assertEquals(expected_values, attr[2])
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_read_history_empty(self):
"""
Parses a read-history with an empty value.
@@ -288,7 +282,6 @@ class TestServerDescriptor(unittest.TestCase):
desc_text = get_relay_server_descriptor({'opt fingerprint': fingerprint}, content = True)
self._expect_invalid_attr(desc_text, 'fingerprint', fingerprint.replace(' ', ''))
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_ipv6_policy(self):
"""
Checks a 'ipv6-policy' line.
@@ -298,7 +291,6 @@ class TestServerDescriptor(unittest.TestCase):
desc = get_relay_server_descriptor({'ipv6-policy': 'accept 22-23,53,80,110'})
self.assertEquals(expected, desc.exit_policy_v6)
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_ntor_onion_key(self):
"""
Checks a 'ntor-onion-key' line.
diff --git a/test/unit/tutorial.py b/test/unit/tutorial.py
index f666d4c..1c853c0 100644
--- a/test/unit/tutorial.py
+++ b/test/unit/tutorial.py
@@ -107,7 +107,6 @@ class TestTutorial(unittest.TestCase):
@patch('sys.stdout', new_callable = StringIO.StringIO)
@patch('stem.descriptor.reader.DescriptorReader', spec = DescriptorReader)
- @patch('stem.descriptor.server_descriptor.RelayDescriptor._verify_digest', Mock())
def test_mirror_mirror_on_the_wall_4(self, reader_mock, stdout_mock):
def tutorial_example():
from stem.descriptor.reader import DescriptorReader
More information about the tor-commits
mailing list