[tor-commits] [stem/master] Added outdated_relays test

atagar at torproject.org atagar at torproject.org
Sun Dec 21 23:15:52 UTC 2014


commit 8e85d49eccf6ea2b6fa63cbadf9e049c021f6650
Author: Sambuddha Basu <sambuddhabasu1 at gmail.com>
Date:   Tue Dec 16 18:02:37 2014 +0400

    Added outdated_relays test
---
 test/unit/tutorial_examples.py |   47 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 45 insertions(+), 2 deletions(-)

diff --git a/test/unit/tutorial_examples.py b/test/unit/tutorial_examples.py
index 9184957..9ce78a0 100644
--- a/test/unit/tutorial_examples.py
+++ b/test/unit/tutorial_examples.py
@@ -9,8 +9,11 @@ import stem.response
 
 from stem.control import Controller
 from test import mocking
-from test.mocking import get_router_status_entry_v3
-from test.mocking import ROUTER_STATUS_ENTRY_V3_HEADER
+from test.mocking import (
+  get_relay_server_descriptor,
+  get_router_status_entry_v3,
+  ROUTER_STATUS_ENTRY_V3_HEADER,
+)
 
 try:
   # added in python 3.3
@@ -53,6 +56,14 @@ Exit relay for our connection to 64.15.112.44:80
 
 """
 
+OUTDATED_RELAYS_OUTPUT = """\
+Checking for outdated relays...
+
+  0.1.0           Sambuddha Basu
+
+2 outdated relays found, 1 had contact information
+"""
+
 
 def _get_event(content):
   controller_event = mocking.get_message(content)
@@ -185,3 +196,35 @@ class TestTutorialExamples(unittest.TestCase):
     __builtins__['raw_input'] = origin_raw_input
     stream_event(controller, event)
     self.assertEqual(EXIT_USED_OUTPUT, stdout_mock.getvalue())
+
+  @patch('sys.stdout', new_callable = StringIO.StringIO)
+  @patch('stem.descriptor.remote.DescriptorDownloader')
+  def test_outdated_relays(self, downloader_mock, stdout_mock):
+    def tutorial_example():
+      from stem.descriptor.remote import DescriptorDownloader
+      from stem.version import Version
+
+      downloader = DescriptorDownloader()
+      count, with_contact = 0, 0
+
+      print "Checking for outdated relays..."
+      print
+
+      for desc in downloader.get_server_descriptors():
+        if desc.tor_version < Version('0.2.3.0'):
+          count += 1
+
+          if desc.contact:
+            print '  %-15s %s' % (desc.tor_version, desc.contact.decode("utf-8", "replace"))
+            with_contact += 1
+
+      print
+      print "%i outdated relays found, %i had contact information" % (count, with_contact)
+
+    desc_1 = get_relay_server_descriptor({'platform': 'node-Tor 0.2.3.0 on Linux x86_64'})
+    desc_2 = get_relay_server_descriptor({'platform': 'node-Tor 0.1.0 on Linux x86_64'})
+    desc_3 = get_relay_server_descriptor({'opt': 'contact Random Person admin at gtr-10.de', 'platform': 'node-Tor 0.2.3.0 on Linux x86_64'})
+    desc_4 = get_relay_server_descriptor({'opt': 'contact Sambuddha Basu', 'platform': 'node-Tor 0.1.0 on Linux x86_64'})
+    downloader_mock().get_server_descriptors.return_value = [desc_1, desc_2, desc_3, desc_4]
+    tutorial_example()
+    self.assertEqual(OUTDATED_RELAYS_OUTPUT, stdout_mock.getvalue())





More information about the tor-commits mailing list