commit 2ae0452fb59ef5781e0803919b02cc0f3fa5212a Author: Damian Johnson atagar@torproject.org Date: Tue Jan 24 09:47:51 2012 -0800
Integ testing for multi-line configs --- stem/util/conf.py | 5 +++++ test/integ/util/conf.py | 43 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/stem/util/conf.py b/stem/util/conf.py index 67bd253..63843e5 100644 --- a/stem/util/conf.py +++ b/stem/util/conf.py @@ -217,6 +217,11 @@ class Config(): self._path = path self._contents_lock.release()
+ # TODO: pending improvements... + # - missing pydocs + # - integ testing + # - does not yet handle multi-line entries + # - should have an optional path argument def save(self): self._contents_lock.acquire()
diff --git a/test/integ/util/conf.py b/test/integ/util/conf.py index 0b4cbc8..6ac37c3 100644 --- a/test/integ/util/conf.py +++ b/test/integ/util/conf.py @@ -21,12 +21,36 @@ startup.run export PATH=$PATH:~/bin startup.run alias l=ls """ % CONF_HEADER
+MULTILINE_CONF = """%s +multiline.entry.simple +|la de da +|and a ho hum + +multiline.entry.leading_whitespace + |la de da + |and a ho hum + +multiline.entry.empty + +multiline.entry.squashed_top +|la de da +|and a ho hum +multiline.entry.squashed_bottom +|la de da +|and a ho hum +""" + class TestConf(unittest.TestCase): """ Tests the stem.util.conf contents. """
def tearDown(self): + # clears the config contents + test_config = stem.util.conf.get_config("integ_testing") + test_config.clear() + test_config.clear_listeners() + # cleans up test configurations we made if os.path.exists(CONF_PATH): os.remove(CONF_PATH) @@ -46,7 +70,7 @@ class TestConf(unittest.TestCase): "destination.port": 22, "startup.run": []}
- user_config = stem.util.conf.get_config("integ-ssh_login") + user_config = stem.util.conf.get_config("integ_testing") user_config.load(CONF_PATH) user_config.update(ssh_config)
@@ -55,6 +79,21 @@ class TestConf(unittest.TestCase): self.assertEquals("1.2.3.4", ssh_config["destination.ip"]) self.assertEquals(22, ssh_config["destination.port"]) self.assertEquals(["export PATH=$PATH:~/bin", "alias l=ls"], ssh_config["startup.run"]) + + def test_load_multiline(self): + """ + Tests the load method with multi-line configuration files. + """ + + test_conf_file = open(CONF_PATH, "w") + test_conf_file.write(MULTILINE_CONF) + test_conf_file.close() + + test_config = stem.util.conf.get_config("integ_testing") + test_config.load(CONF_PATH) + + for entry in ("simple", "leading_whitespace", "squashed_top", "squashed_bottom"): + self.assertEquals("la de da\nand a ho hum", test_config.get("multiline.entry.%s" % entry))
- user_config.clear() + self.assertEquals("", test_config.get("multiline.entry.empty"))
tor-commits@lists.torproject.org