summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamian Johnson <atagar@torproject.org>2019-12-12 15:38:24 -0800
committerDamian Johnson <atagar@torproject.org>2019-12-12 15:38:24 -0800
commit670100cbcd8773ac692c7c3fdc0726989b337df8 (patch)
tree3729fc232c181598399b3e861e317d09d5f810a7
parentcb61dfe74a0a4b87b115ed834624cf2c9c5d282c (diff)
parent9cdf95459a898e24ed6b660828d314d3a6f36967 (diff)
Test 'GETINFO status/fresh-relay-descs'
Long requested test implemented by hannelores. https://trac.torproject.org/projects/tor/ticket/15701
-rw-r--r--test/integ/control/controller.py26
1 files changed, 23 insertions, 3 deletions
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index 6e45d0fa..059ad122 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -255,14 +255,34 @@ class TestController(unittest.TestCase):
self.assertEqual({}, controller.get_info([], {}))
@test.require.controller
+ def test_getinfo_freshrelaydescs(self):
+ """
+ Exercises the GETINFO option status/fresh-relay-descs
+ """
+
+ with test.runner.get_runner().get_tor_controller() as controller:
+ response = controller.get_info('status/fresh-relay-descs')
+ div = response.find('\nextra-info ')
+ nickname = controller.get_conf('Nickname')
+
+ if div == -1:
+ self.fail('GETINFO response should have both a server and extrainfo descriptor:\n%s' % response)
+
+ server_desc = stem.descriptor.server_descriptor.ServerDescriptor(response[:div], validate = True)
+ extrainfo_desc = stem.descriptor.extrainfo_descriptor.ExtraInfoDescriptor(response[div:], validate = True)
+
+ self.assertEqual(nickname, server_desc.nickname)
+ self.assertEqual(nickname, extrainfo_desc.nickname)
+ self.assertEqual(controller.get_info('address'), server_desc.address)
+ self.assertEqual(test.runner.ORPORT, server_desc.or_port)
+
+ @test.require.controller
def test_get_version(self):
"""
Test that the convenient method get_version() works.
"""
- runner = test.runner.get_runner()
-
- with runner.get_tor_controller() as controller:
+ with test.runner.get_runner().get_tor_controller() as controller:
version = controller.get_version()
self.assertTrue(isinstance(version, stem.version.Version))
self.assertEqual(version, test.tor_version())