commit 2860a3f66bc59a8f33223980fa79046ce5dcdd0b Author: Damian Johnson atagar@torproject.org Date: Sun Mar 6 17:29:11 2016 -0800
Deprecated the DescriptorDownloader's get_microdescriptors()
This methed never worked since it was never actually implemented in tor...
https://trac.torproject.org/projects/tor/ticket/9271 --- docs/change_log.rst | 1 + stem/descriptor/remote.py | 19 ++++--------------- test/integ/descriptor/remote.py | 40 ++-------------------------------------- 3 files changed, 7 insertions(+), 53 deletions(-)
diff --git a/docs/change_log.rst b/docs/change_log.rst index 26e9966..a414835 100644 --- a/docs/change_log.rst +++ b/docs/change_log.rst @@ -69,6 +69,7 @@ The following are only available within Stem's `git repository * TypeError under python3 when using 'use_mirrors = True' (:trac:`17083`) * Deprecated hidden service descriptor's *introduction_points_auth* field, which was never implemented in tor (:trac:`15190`, :spec:`9c218f9`) * :func:`~stem.control.Controller.get_hidden_service_descriptor` errored when provided a *servers* argument (:trac:`18401`) + * Deprecated :func:`~stem.descriptor.remote.DescriptorDownloader.get_microdescriptors` as it was never implemented in tor (:trac:`9271`) * Fixed parsing of server descriptor's *allow-single-hop-exits* and *caches-extra-info* lines * Bracketed IPv6 addresses were mistreated as being invalid content * Updated dannenberg's v3ident (:trac:`17906`) diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py index 09aba84..859eb24 100644 --- a/stem/descriptor/remote.py +++ b/stem/descriptor/remote.py @@ -47,7 +47,6 @@ content. For example... get_instance - Provides a singleton DescriptorDownloader used for... |- get_server_descriptors - provides present server descriptors |- get_extrainfo_descriptors - provides present extrainfo descriptors - |- get_microdescriptors - provides present microdescriptors +- get_consensus - provides the present consensus or router status entries
get_authorities - Provides tor directory information. @@ -66,7 +65,6 @@ content. For example... |- use_directory_mirrors - use directory mirrors to download future descriptors |- get_server_descriptors - provides present server descriptors |- get_extrainfo_descriptors - provides present extrainfo descriptors - |- get_microdescriptors - provides present microdescriptors |- get_consensus - provides the present consensus or router status entries |- get_key_certificates - provides present authority key certificates +- query - request an arbitrary descriptor resource @@ -123,7 +121,6 @@ def get_instance():
* :func:`stem.descriptor.remote.get_server_descriptors` * :func:`stem.descriptor.remote.get_extrainfo_descriptors` - * :func:`stem.descriptor.remote.get_microdescriptors` * :func:`stem.descriptor.remote.get_consensus`
.. versionadded:: 1.5.0 @@ -163,18 +160,6 @@ def get_extrainfo_descriptors(fingerprints = None, **query_args): return get_instance().get_extrainfo_descriptors(fingerprints, **query_args)
-def get_microdescriptors(hashes, **query_args): - """ - Shorthand for - :func:`~stem.descriptor.remote.DescriptorDownloader.get_microdescriptors` - on our singleton instance. - - .. versionadded:: 1.5.0 - """ - - return get_instance().get_microdescriptors(hashes, **query_args) - - def get_consensus(authority_v3ident = None, **query_args): """ Shorthand for @@ -587,6 +572,10 @@ class DescriptorDownloader(object): that these are only provided via a microdescriptor consensus (such as 'cached-microdesc-consensus' in your data directory).
+ .. deprecated:: 1.5.0 + This function has never worked, as it was never implemented in tor + (:trac:`9271`). + :param str,list hashes: microdescriptor hash or list of hashes to be retrieved :param query_args: additional arguments for the diff --git a/test/integ/descriptor/remote.py b/test/integ/descriptor/remote.py index ef556ae..5fe6cc1 100644 --- a/test/integ/descriptor/remote.py +++ b/test/integ/descriptor/remote.py @@ -6,12 +6,10 @@ import unittest
import stem.descriptor import stem.descriptor.extrainfo_descriptor -import stem.descriptor.microdescriptor import stem.descriptor.networkstatus import stem.descriptor.remote import stem.descriptor.router_status_entry import stem.descriptor.server_descriptor -import test.runner
from test.runner import ( require_online, @@ -28,15 +26,12 @@ class TestDescriptorDownloader(unittest.TestCase): descriptors. """
- desc = list(stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31'))[0] + desc = list(stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31').run())[0] self.assertEqual('moria1', desc.nickname)
- desc = list(stem.descriptor.remote.get_extrainfo_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31'))[0] + desc = list(stem.descriptor.remote.get_extrainfo_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31').run())[0] self.assertEqual('moria1', desc.nickname)
- desc = list(stem.descriptor.remote.get_microdescriptors('6dCl6ab8CLo0LeMjxi/MZgVJiZgWN8WKTesWPBMtyTo'))[0] - self.assertEqual('moria1', desc.digest) - consensus = list(stem.descriptor.remote.get_consensus()) self.assertTrue(len(consensus) > 50)
@@ -171,37 +166,6 @@ class TestDescriptorDownloader(unittest.TestCase):
@require_online @only_run_once - def test_get_microdescriptors(self): - """ - Exercises the downloader's get_microdescriptors() method. - """ - - # TODO: method needs to be fixed - not quite sure what's going wrong... - - test.runner.skip(self, '(test currently broken)') - return - - downloader = stem.descriptor.remote.DescriptorDownloader(validate = True) - - single_query = downloader.get_microdescriptors('6dCl6ab8CLo0LeMjxi/MZgVJiZgWN8WKTesWPBMtyTo') - - multiple_query = downloader.get_microdescriptors([ - '6dCl6ab8CLo0LeMjxi/MZgVJiZgWN8WKTesWPBMtyTo', # moria1 - 'oXBV80OwMACBJpqNeZrYSXF18l9EJCi4/mB8UOl9sME', # tor26 - ]) - - single_query.run() - multiple_query.run() - - single_query_results = list(single_query) - self.assertEqual(1, len(single_query_results)) - self.assertEqual('moria1', single_query_results[0].digest) - self.assertTrue(isinstance(single_query_results[0], stem.descriptor.microdescriptor.Microdescriptor)) - - self.assertEqual(2, len(list(multiple_query))) - - @require_online - @only_run_once def test_get_consensus(self): """ Exercises the downloader's get_consensus() method.