commit 0d0f6e306a518a3989415b80542af3572bd2486d Author: Damian Johnson <ata...@torproject.org> Date: Sat Jun 22 17:45:52 2019 -0700
Fix stem.descriptor.remote vote fetching Commit a4ecadb broke our ability to download consensus votes... https://trac.torproject.org/projects/tor/ticket/30930 ====================================================================== ERROR: test_each_getter ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/mock/mock.py", line 1305, in patched return func(*args, **keywargs) File "/home/atagar/Desktop/stem/test/unit/descriptor/remote.py", line 286, in test_each_getter downloader.get_vote(stem.directory.Authority.from_cache()['moria1']) File "/home/atagar/Desktop/stem/stem/descriptor/remote.py", line 871, in get_vote return self.query(resource, **query_args) File "/home/atagar/Desktop/stem/stem/descriptor/remote.py", line 999, in query return Query(resource, **args) File "/home/atagar/Desktop/stem/stem/descriptor/remote.py", line 460, in __init__ self.descriptor_type = _guess_descriptor_type(resource) File "/home/atagar/Desktop/stem/stem/descriptor/remote.py", line 1143, in _guess_descriptor_type raise ValueError("Unable to determine the descriptor type for '%s'" % resource) ValueError: Unable to determine the descriptor type for '/tor/status-vote/current/authority' --- stem/descriptor/remote.py | 5 +++-- test/unit/descriptor/remote.py | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py index 7f1f44fa..e76181fa 100644 --- a/stem/descriptor/remote.py +++ b/stem/descriptor/remote.py @@ -61,9 +61,10 @@ content. For example... |- get_extrainfo_descriptors - provides present extrainfo descriptors |- get_microdescriptors - provides present microdescriptors with the given digests |- get_consensus - provides the present consensus or router status entries + |- get_vote - provides an authority's vote for the next consensus + |- get_key_certificates - provides present authority key certificates |- get_bandwidth_file - provies bandwidth heuristics used to make the next consensus |- get_detached_signatures - authority signatures used to make the next consensus - |- get_key_certificates - provides present authority key certificates +- query - request an arbitrary descriptor resource .. versionadded:: 1.1.0 @@ -1119,7 +1120,7 @@ def _guess_descriptor_type(resource): # The following resource urls can be for the present consensus # (/tor/status-vote/current/*) or the next (/tor/status-vote/next/*). - if resource.endswith('/consensus'): + if resource.endswith('/consensus') or resource.endswith('/authority'): return 'network-status-consensus-3 1.0' elif resource.endswith('/consensus-microdesc'): return 'network-status-microdesc-consensus-3 1.0' diff --git a/test/unit/descriptor/remote.py b/test/unit/descriptor/remote.py index e26934b3..8c5e835b 100644 --- a/test/unit/descriptor/remote.py +++ b/test/unit/descriptor/remote.py @@ -270,6 +270,23 @@ class TestDescriptorDownloader(unittest.TestCase): self.assertEqual(1, len(descriptors)) self.assertEqual('moria1', descriptors[0].nickname) + @patch(URL_OPEN) + def test_each_getter(self, dirport_mock): + """ + Surface level exercising of each getter method for downloading descriptors. + """ + + downloader = stem.descriptor.remote.get_instance() + + downloader.get_server_descriptors() + downloader.get_extrainfo_descriptors() + downloader.get_microdescriptors('test-hash') + downloader.get_consensus() + downloader.get_vote(stem.directory.Authority.from_cache()['moria1']) + downloader.get_key_certificates() + downloader.get_bandwidth_file() + downloader.get_detached_signatures() + @patch(URL_OPEN, _dirport_mock(TEST_DESCRIPTOR)) def test_reply_headers(self): query = stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31', start = False) _______________________________________________ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits