commit 1b7b1369579e04292221b2bfce6ad4b3d3c85d2e Author: cypherpunks cypherpunks@torproject.org Date: Thu Jul 9 16:10:06 2015 +0200
Ensure the 'compare_flags' test gives reliable results.
The call to queries.items() causes the issue by returning an unordered set of key/value pairs. When the call returns the queries in an unexpected order, the mocked Query.run() function assigns the network status documents in the wrong order to the authorities. Using an ordered dictionary fixes the problem.
This commit closes ticket 16299.
Other small changes are a PEP8 fix, a grammar fix, and the use of assertItemsEqual instead of assertEquals. According to the Python documentation [0], assertItemsEqual is the Python 2.7 equivalent of assertCountEqual in Python 3.
[0] https://docs.python.org/2.7/library/unittest.html#unittest.TestCase.assertIt... --- docs/_static/example/compare_flags.py | 11 ++++++++--- test/unit/tutorial_examples.py | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/docs/_static/example/compare_flags.py b/docs/_static/example/compare_flags.py index 1043af1..df317a8 100644 --- a/docs/_static/example/compare_flags.py +++ b/docs/_static/example/compare_flags.py @@ -1,9 +1,14 @@ +from collections import OrderedDict from stem.descriptor import DocumentHandler, remote
# Query all authority votes asynchronously.
-downloader = remote.DescriptorDownloader(document_handler = DocumentHandler.DOCUMENT) -queries = {} +downloader = remote.DescriptorDownloader(document_handler=DocumentHandler.DOCUMENT) + +# An ordered dictionary ensures queries are finished in the order they were +# added. + +queries = OrderedDict()
for name, authority in remote.get_authorities().items(): if authority.v3ident is None: @@ -23,7 +28,7 @@ all_fingerprints = set() for vote in votes.values(): all_fingerprints.update(vote.routers.keys())
-# Finally, compare moria1's votes to maatuska. +# Finally, compare moria1's votes to maatuska's votes.
for fingerprint in all_fingerprints: moria1_vote = votes['moria1'].routers.get(fingerprint) diff --git a/test/unit/tutorial_examples.py b/test/unit/tutorial_examples.py index c102c1a..a8382a3 100644 --- a/test/unit/tutorial_examples.py +++ b/test/unit/tutorial_examples.py @@ -140,7 +140,7 @@ class TestTutorialExamples(unittest.TestCase): if stem.prereq.is_python_3(): self.assertCountEqual(expected.splitlines(), actual.splitlines()) else: - self.assertEquals(sorted(expected.splitlines()), sorted(actual.splitlines())) + self.assertItemsEqual(expected.splitlines(), actual.splitlines())
@patch('sys.stdout', new_callable = StringIO) @patch('stem.control.Controller.from_port', spec = Controller)
tor-commits@lists.torproject.org