commit 0b83af2922b5c377161626c7aef2af14a0152463
Author: Ravi Chandra Padmala <[email protected]>
Date: Sun Jun 17 22:27:55 2012 +0530
Fix a bug where getconf parses didn't set the default correctly for
multiple keys
and write a test to check for this
---
stem/control.py | 8 +++++++-
test/integ/control/controller.py | 11 +++++++++--
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/stem/control.py b/stem/control.py
index d14d723..5ce6780 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -576,5 +576,11 @@ class Controller(BaseController):
except KeyError: raise stem.socket.InvalidRequest("Received empty
string")
except stem.socket.ControllerError, exc:
if default is UNDEFINED: raise exc
- else: return default
+ elif is_multiple:
+ if default != UNDEFINED:
+ return dict([(p, default) for p in param])
+ else:
+ return dict([(p, None) for p in param])
+ else:
+ return default
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index 9d1028b..38f6f10 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -166,13 +166,20 @@ class TestController(unittest.TestCase):
self.assertEqual(getconf_params, set(controller.get_conf(["ControlPort",
"DirPort", "DataDirectory"])))
- # non-existant option
+ # non-existant option(s)
self.assertRaises(stem.socket.InvalidRequest, controller.get_conf,
"blarg")
self.assertEqual("la-di-dah", controller.get_conf("blarg", "la-di-dah"))
+ self.assertRaises(stem.socket.InvalidRequest, controller.get_conf,
"blarg")
+ self.assertEqual("la-di-dah", controller.get_conf("blarg", "la-di-dah"))
+
+ self.assertRaises(stem.socket.InvalidRequest, controller.get_conf,
+ ["blarg", "huadf"], multiple = True)
+ self.assertEqual({"erfusdj": "la-di-dah", "afiafj": "la-di-dah"},
+ controller.get_conf(["erfusdj", "afiafj"], "la-di-dah", multiple =
True))
# multivalue configuration keys
-
+
nodefamilies = [node_family[11:].strip() for node_family in
runner.get_torrc_contents().split("\n") if
node_family.startswith("NodeFamily ")]
self.assertEqual(nodefamilies, controller.get_conf("NodeFamily",
multiple = True))
_______________________________________________
tor-commits mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits