[tor-commits] [stem/master] Move compare_flags test

atagar at torproject.org atagar at torproject.org
Fri Oct 2 23:16:05 UTC 2020


commit ebdd4538f444cf8ee576d2a3969379c50179f7ca
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Sep 27 14:47:18 2020 -0700

    Move compare_flags test
---
 docs/_static/example/compare_flags.py |  2 +-
 test/unit/examples.py                 | 44 +++++++++++++++++++++++++++++--
 test/unit/tutorial_examples.py        | 49 -----------------------------------
 3 files changed, 43 insertions(+), 52 deletions(-)

diff --git a/docs/_static/example/compare_flags.py b/docs/_static/example/compare_flags.py
index 1efb1d2c..94c236e6 100644
--- a/docs/_static/example/compare_flags.py
+++ b/docs/_static/example/compare_flags.py
@@ -35,7 +35,7 @@ for vote in votes.values():
 
 # Finally, compare moria1's votes to maatuska's votes.
 
-for fingerprint in all_fingerprints:
+for fingerprint in sorted(all_fingerprints):
   moria1_vote = votes['moria1'].routers.get(fingerprint)
   maatuska_vote = votes['maatuska'].routers.get(fingerprint)
 
diff --git a/test/unit/examples.py b/test/unit/examples.py
index 0fa140ab..8fca999a 100644
--- a/test/unit/examples.py
+++ b/test/unit/examples.py
@@ -18,8 +18,10 @@ import test.require
 from stem.control import Controller
 from stem.descriptor.bandwidth_file import BandwidthFile
 from stem.descriptor.extrainfo_descriptor import RelayExtraInfoDescriptor
+from stem.descriptor.networkstatus import NetworkStatusDocumentV3
 from stem.descriptor.router_status_entry import RouterStatusEntryV3
 from stem.descriptor.server_descriptor import RelayDescriptor
+from stem.directory import DIRECTORY_AUTHORITIES
 from stem.exit_policy import ExitPolicy
 from stem.response import ControlMessage
 from unittest.mock import Mock, patch
@@ -105,6 +107,14 @@ EXPECTED_COLLECTOR_READING = """\
   caerSidi (4F0C867DF0EF68160568C826838F482CEA7CFE44)
 """
 
+EXPECTED_COMPARE_FLAGS = """\
+moria1 has the Running flag but maatuska doesn't: 546C54E2A89D88E0794D04AECBF1AC8AC9DA81DE
+maatuska has the Running flag but moria1 doesn't: 6871F682350BA931838C0EC1E4A23044DAE06A73
+maatuska has the Running flag but moria1 doesn't: 92FCB6748A40E6088E22FBAB943AB2DD743EA818
+moria1 has the Running flag but maatuska doesn't: DCAEC3D069DC39AAE43D13C8AF31B5645E05ED61
+maatuska has the Running flag but moria1 doesn't: E2BB13AA2F6960CD93ABE5257A825687F3973C62
+"""
+
 EXPECTED_EXIT_USED = """\
 Tracking requests for tor exits. Press 'enter' to end.
 
@@ -321,8 +331,38 @@ class TestExamples(unittest.TestCase):
 
     self.assertEqual(EXPECTED_COLLECTOR_READING, stdout_mock.getvalue())
 
-  def test_compare_flags(self):
-    pass
+  @patch('stem.directory.Authority.from_cache')
+  @patch('stem.descriptor.remote.Query')
+  @patch('sys.stdout', new_callable = io.StringIO)
+  def test_compare_flags(self, stdout_mock, query_mock, authorities_mock):
+    authorities_mock().items.return_value = [
+      ('moria1', DIRECTORY_AUTHORITIES['moria1']),
+      ('maatuska', DIRECTORY_AUTHORITIES['maatuska']),
+    ]
+
+    r_line = 'caerSidi %s oQZFLYe9e4A7bOkWKR7TaNxb0JE 2012-08-06 11:19:31 71.35.150.29 9001 0'
+
+    moria1_consensus = NetworkStatusDocumentV3.create(routers = [
+      RouterStatusEntryV3.create({'r': r_line % 'kvy2dIpA5giOIvurlDqy3XQ+qBg=', 's': ' '}),
+      RouterStatusEntryV3.create({'r': r_line % 'aHH2gjULqTGDjA7B5KIwRNrganM=', 's': ' '}),
+      RouterStatusEntryV3.create({'r': r_line % '4rsTqi9pYM2Tq+UleoJWh/OXPGI=', 's': ' '}),
+      RouterStatusEntryV3.create({'r': r_line % 'VGxU4qidiOB5TQSuy/Gsisnagd4='}),
+      RouterStatusEntryV3.create({'r': r_line % '3K7D0GncOarkPRPIrzG1ZF4F7WE='}),
+    ])
+
+    maatuska_consensus = NetworkStatusDocumentV3.create(routers = [
+      RouterStatusEntryV3.create({'r': r_line % 'kvy2dIpA5giOIvurlDqy3XQ+qBg='}),
+      RouterStatusEntryV3.create({'r': r_line % 'aHH2gjULqTGDjA7B5KIwRNrganM='}),
+      RouterStatusEntryV3.create({'r': r_line % '4rsTqi9pYM2Tq+UleoJWh/OXPGI='}),
+      RouterStatusEntryV3.create({'r': r_line % 'VGxU4qidiOB5TQSuy/Gsisnagd4=', 's': ' '}),
+      RouterStatusEntryV3.create({'r': r_line % '3K7D0GncOarkPRPIrzG1ZF4F7WE=', 's': ' '}),
+    ])
+
+    query_mock().run.side_effect = [[moria1_consensus], [maatuska_consensus]]
+
+    import compare_flags
+
+    self.assertEqual(EXPECTED_COMPARE_FLAGS, stdout_mock.getvalue())
 
   def test_create_descriptor(self):
     pass
diff --git a/test/unit/tutorial_examples.py b/test/unit/tutorial_examples.py
index 0badb937..ad9a68f4 100644
--- a/test/unit/tutorial_examples.py
+++ b/test/unit/tutorial_examples.py
@@ -24,14 +24,6 @@ PURPOSE=%s'
 
 PATH_CONTENT = '$%s=%s,$%s=%s,$%s=%s'
 
-COMPARE_FLAGS_OUTPUT = """\
-maatuska has the Running flag but moria1 doesn't: E2BB13AA2F6960CD93ABE5257A825687F3973C62
-moria1 has the Running flag but maatuska doesn't: 546C54E2A89D88E0794D04AECBF1AC8AC9DA81DE
-maatuska has the Running flag but moria1 doesn't: 92FCB6748A40E6088E22FBAB943AB2DD743EA818
-maatuska has the Running flag but moria1 doesn't: 6871F682350BA931838C0EC1E4A23044DAE06A73
-moria1 has the Running flag but maatuska doesn't: DCAEC3D069DC39AAE43D13C8AF31B5645E05ED61
-"""
-
 VOTES_BY_BANDWIDTH_AUTHORITIES_OUTPUT = """\
 Getting gabelmoo's vote from http://131.188.40.189:80/tor/status-vote/current/authority:
   5935 measured entries and 1332 unmeasured
@@ -78,47 +70,6 @@ def _get_router_status(address = None, port = None, nickname = None, fingerprint
 
 
 class TestTutorialExamples(unittest.TestCase):
-  @patch('sys.stdout', new_callable = io.StringIO)
-  @patch('stem.descriptor.remote.Query')
-  @patch('stem.directory.Authority.from_cache')
-  def test_compare_flags(self, authorities_mock, query_mock, stdout_mock):
-    authorities_mock().items.return_value = [('moria1', DIRECTORY_AUTHORITIES['moria1']), ('maatuska', DIRECTORY_AUTHORITIES['maatuska'])]
-
-    fingerprint = [
-      ('92FCB6748A40E6088E22FBAB943AB2DD743EA818', 'kvy2dIpA5giOIvurlDqy3XQ+qBg='),
-      ('6871F682350BA931838C0EC1E4A23044DAE06A73', 'aHH2gjULqTGDjA7B5KIwRNrganM='),
-      ('E2BB13AA2F6960CD93ABE5257A825687F3973C62', '4rsTqi9pYM2Tq+UleoJWh/OXPGI='),
-      ('546C54E2A89D88E0794D04AECBF1AC8AC9DA81DE', 'VGxU4qidiOB5TQSuy/Gsisnagd4='),
-      ('DCAEC3D069DC39AAE43D13C8AF31B5645E05ED61', '3K7D0GncOarkPRPIrzG1ZF4F7WE='),
-    ]
-
-    entry = [
-      # entries for moria1
-
-      _get_router_status(fingerprint_base64 = fingerprint[0][1], s_line = ' '),
-      _get_router_status(fingerprint_base64 = fingerprint[1][1], s_line = ' '),
-      _get_router_status(fingerprint_base64 = fingerprint[2][1], s_line = ' '),
-      _get_router_status(fingerprint_base64 = fingerprint[3][1]),
-      _get_router_status(fingerprint_base64 = fingerprint[4][1]),
-
-      # entries for maatuska
-
-      _get_router_status(fingerprint_base64 = fingerprint[0][1]),
-      _get_router_status(fingerprint_base64 = fingerprint[1][1]),
-      _get_router_status(fingerprint_base64 = fingerprint[2][1]),
-      _get_router_status(fingerprint_base64 = fingerprint[3][1], s_line = ' '),
-      _get_router_status(fingerprint_base64 = fingerprint[4][1], s_line = ' '),
-    ]
-
-    query_mock().run.side_effect = [
-      [NetworkStatusDocumentV3.create(routers = (entry[0], entry[1], entry[2], entry[3], entry[4]))],
-      [NetworkStatusDocumentV3.create(routers = (entry[5], entry[6], entry[7], entry[8], entry[9]))],
-    ]
-
-    exec_documentation_example('compare_flags.py')
-
-    self.assertCountEqual(COMPARE_FLAGS_OUTPUT.splitlines(), stdout_mock.getvalue().splitlines())
-
   @patch('sys.stdout', new_callable = io.StringIO)
   @patch('stem.directory.Authority.from_cache')
   @patch('stem.descriptor.remote.DescriptorDownloader.query')





More information about the tor-commits mailing list