[tor-commits] [stem/master] Add support for votes from Metrics
atagar at torproject.org
atagar at torproject.org
Sat Oct 13 18:35:44 UTC 2012
commit 21cfed42b859becabe71a803164004fea2372929
Author: Ravi Chandra Padmala <neenaoffline at gmail.com>
Date: Tue Aug 7 14:14:51 2012 +0530
Add support for votes from Metrics
---
stem/descriptor/__init__.py | 2 +-
test/integ/descriptor/networkstatus.py | 57 +++++++++++++++++++++----------
2 files changed, 39 insertions(+), 20 deletions(-)
diff --git a/stem/descriptor/__init__.py b/stem/descriptor/__init__.py
index 903a877..72d2275 100644
--- a/stem/descriptor/__init__.py
+++ b/stem/descriptor/__init__.py
@@ -96,7 +96,7 @@ def parse_file(path, descriptor_file):
# https://trac.torproject.org/6257
desc = stem.descriptor.extrainfo_descriptor.BridgeExtraInfoDescriptor(descriptor_file.read())
- elif desc_type == "network-status-consensus-3" and major_version == 1:
+ elif desc_type in ("network-status-consensus-3", "network-status-vote-3") and major_version == 1:
desc = stem.descriptor.networkstatus_descriptor.NetworkStatusDocument(descriptor_file.read())
for desc in desc.router_descriptors:
desc._set_path(path)
diff --git a/test/integ/descriptor/networkstatus.py b/test/integ/descriptor/networkstatus.py
index e65d960..a634e54 100644
--- a/test/integ/descriptor/networkstatus.py
+++ b/test/integ/descriptor/networkstatus.py
@@ -18,25 +18,6 @@ def _strptime(string):
return datetime.datetime.strptime(string, "%Y-%m-%d %H:%M:%S")
class TestNetworkStatusDocument(unittest.TestCase):
- def test_metrics_consensus(self):
- """
- Checks if consensus documents from Metrics are parsed properly.
- """
-
- descriptor_path = test.integ.descriptor.get_resource("metrics_consensus")
-
- with file(descriptor_path) as descriptor_file:
- desc = stem.descriptor.parse_file(descriptor_path, descriptor_file)
-
- router = next(desc)
- self.assertEquals("sumkledi", router.nickname)
- self.assertEquals("ABPSI4nNUNC3hKPkBhyzHozozrU", router.identity)
- self.assertEquals("8mCr8Sl7RF4ENU4jb0FZFA/3do8", router.digest)
- self.assertEquals(_strptime("2012-07-12 04:01:55"), router.publication)
- self.assertEquals("178.218.213.229", router.ip)
- self.assertEquals(80, router.orport)
- self.assertEquals(None, router.dirport)
-
def test_cached_consensus(self):
"""
Parses the cached-consensus file in our data directory.
@@ -66,6 +47,25 @@ class TestNetworkStatusDocument(unittest.TestCase):
assert count > 100 # sanity check - assuming atleast 100 relays in the Tor network
+ def test_metrics_consensus(self):
+ """
+ Checks if consensus documents from Metrics are parsed properly.
+ """
+
+ descriptor_path = test.integ.descriptor.get_resource("metrics_consensus")
+
+ with file(descriptor_path) as descriptor_file:
+ desc = stem.descriptor.parse_file(descriptor_path, descriptor_file)
+
+ router = next(desc)
+ self.assertEquals("sumkledi", router.nickname)
+ self.assertEquals("ABPSI4nNUNC3hKPkBhyzHozozrU", router.identity)
+ self.assertEquals("8mCr8Sl7RF4ENU4jb0FZFA/3do8", router.digest)
+ self.assertEquals(_strptime("2012-07-12 04:01:55"), router.publication)
+ self.assertEquals("178.218.213.229", router.ip)
+ self.assertEquals(80, router.orport)
+ self.assertEquals(None, router.dirport)
+
def test_consensus(self):
"""
Checks that consensus documents are properly parsed.
@@ -137,6 +137,25 @@ I/TJmV928na7RLZe2mGHCAW3VQOvV+QkCfj05VZ8CsY="""
self.assertEquals("BF112F1C6D5543CFD0A32215ACABD4197B5279AD", desc.directory_signatures[0].key_digest)
self.assertEquals(expected_signature, desc.directory_signatures[0].signature)
+ def test_metrics_vote(self):
+ """
+ Checks if vote documents from Metrics are parsed properly.
+ """
+
+ descriptor_path = test.integ.descriptor.get_resource("metrics_vote")
+
+ with file(descriptor_path) as descriptor_file:
+ desc = stem.descriptor.parse_file(descriptor_path, descriptor_file)
+
+ router = next(desc)
+ self.assertEquals("sumkledi", router.nickname)
+ self.assertEquals("ABPSI4nNUNC3hKPkBhyzHozozrU", router.identity)
+ self.assertEquals("B5n4BiALAF8B5AqafxohyYiuj7E", router.digest)
+ self.assertEquals(_strptime("2012-07-11 04:22:53"), router.publication)
+ self.assertEquals("178.218.213.229", router.ip)
+ self.assertEquals(80, router.orport)
+ self.assertEquals(None, router.dirport)
+
def test_vote(self):
"""
Checks that vote documents are properly parsed.
More information about the tor-commits
mailing list