commit de9ac90b6db59f29a42453b829a66dff7b3b1767 Author: Damian Johnson atagar@torproject.org Date: Sun Jan 27 13:17:48 2013 -0800
NetworkStatus' meets_consensus_method() comparisons didn't account for None
Another spot where comparison with None fails with python 3...
====================================================================== ERROR: test_with_directory_authorities ---------------------------------------------------------------------- Traceback: File "/home/atagar/Desktop/stem/test/data/python3/test/unit/descriptor/networkstatus/document_v3.py", line 800, in test_with_directory_authorities document = NetworkStatusDocumentV3(content) File "/home/atagar/Desktop/stem/test/data/python3/stem/descriptor/networkstatus.py", line 509, in __init__ self._footer = _DocumentFooter(document_file, validate, self._header) File "/home/atagar/Desktop/stem/test/data/python3/stem/descriptor/networkstatus.py", line 776, in __init__ if header.meets_consensus_method(9): File "/home/atagar/Desktop/stem/test/data/python3/stem/descriptor/networkstatus.py", line 581, in meets_consensus_method return bool(self.consensus_method >= method or [x for x in self.consensus_methods if x >= method]) TypeError: unorderable types: NoneType() >= int() --- stem/descriptor/networkstatus.py | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/stem/descriptor/networkstatus.py b/stem/descriptor/networkstatus.py index f17d705..b4bc188 100644 --- a/stem/descriptor/networkstatus.py +++ b/stem/descriptor/networkstatus.py @@ -578,7 +578,12 @@ class _DocumentHeader(object): _check_for_misordered_fields(entries, HEADER_FIELDS)
def meets_consensus_method(self, method): - return bool(self.consensus_method >= method or filter(lambda x: x >= method, self.consensus_methods)) + if self.consensus_method is not None: + return self.consensus_method >= method + elif self.consensus_methods is not None: + return bool(filter(lambda x: x >= method, self.consensus_methods)) + else: + return False # malformed document
def _parse(self, entries, validate): for keyword, values in entries.items():