From ad3640d7a4bc4627694df3c277cd83972256c543 Mon Sep 17 00:00:00 2001 From: Chris Glass Date: Thu, 26 Jun 2014 10:08:00 +0200 Subject: [PATCH] Added tests for the system config function. --- lib/simple_config.py | 10 ++++---- lib/tests/test_simple_config.py | 41 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/lib/simple_config.py b/lib/simple_config.py index b70e5c9..86df566 100644 --- a/lib/simple_config.py +++ b/lib/simple_config.py @@ -135,10 +135,10 @@ class SimpleConfig(object): import stat os.chmod(path, stat.S_IREAD | stat.S_IWRITE) -def read_system_config(): +def read_system_config(path=SYSTEM_CONFIG_PATH): """Parse and return the system config settings in /etc/electrum.conf.""" result = {} - if os.path.exists(SYSTEM_CONFIG_PATH): + if os.path.exists(path): try: import ConfigParser except ImportError: @@ -146,13 +146,13 @@ def read_system_config(): return p = ConfigParser.ConfigParser() - p.read(SYSTEM_CONFIG_PATH) - result = {} try: + p.read(path) for k, v in p.items('client'): result[k] = v - except ConfigParser.NoSectionError: + except (ConfigParser.NoSectionError, ConfigParser.MissingSectionHeaderError): pass + return result def read_user_config(path): diff --git a/lib/tests/test_simple_config.py b/lib/tests/test_simple_config.py index cee5211..f288b7f 100644 --- a/lib/tests/test_simple_config.py +++ b/lib/tests/test_simple_config.py @@ -1,10 +1,11 @@ import sys +import os import unittest import tempfile import shutil from StringIO import StringIO -from lib.simple_config import SimpleConfig +from lib.simple_config import SimpleConfig, read_system_config class Test_SimpleConfig(unittest.TestCase): @@ -132,3 +133,41 @@ class Test_SimpleConfig(unittest.TestCase): read_user_dir_function=read_user_dir) config.set_key("electrum_path", another_path) self.assertEqual(another_path, config.get("electrum_path")) + + +class TestSystemConfig(unittest.TestCase): + + sample_conf = """ +[client] +gap_limit = 5 + +[something_else] +everything = 42 +""" + + def setUp(self): + super(TestSystemConfig, self).setUp() + self.thefile = tempfile.mkstemp(suffix=".electrum.test.conf")[1] + + def tearDown(self): + os.remove(self.thefile) + + def test_read_system_config_file_does_not_exist(self): + somefile = "/foo/I/do/not/exist/electrum.conf" + result = read_system_config(somefile) + self.assertEqual({}, result) + + def test_read_system_config_file_returns_file_options(self): + with open(self.thefile, "w") as f: + f.write(self.sample_conf) + + result = read_system_config(self.thefile) + self.assertEqual({"gap_limit": "5"}, result) + + def test_read_system_config_file_no_sections(self): + + with open(self.thefile, "w") as f: + f.write("gap_limit = 5") # The file has no sections at all + + result = read_system_config(self.thefile) + self.assertEqual({}, result) -- 1.7.1