From e10e3efba832b78b765f716ec911fc3035570fa4 Mon Sep 17 00:00:00 2001 From: ulif <uli@gnufix.de> Date: Wed, 11 Nov 2015 09:18:49 +0100 Subject: [PATCH] Interpolate ints in config files correctly. --- diceware/config.py | 5 ++++- tests/test_config.py | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/diceware/config.py b/diceware/config.py index 89efc85..5b2fb0a 100644 --- a/diceware/config.py +++ b/diceware/config.py @@ -72,7 +72,10 @@ def get_config_dict(path_list=None): return result conf = dict(parser.items('diceware')) for key, val in OPTIONS_DEFAULTS.items(): - result[key] = conf.get(key, val) + new_val = conf.get(key, val) + if isinstance(val, int): + new_val = int(new_val) + result[key] = new_val return result diff --git a/tests/test_config.py b/tests/test_config.py index b415d11..5a1a653 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -59,3 +59,11 @@ class TestConfigModule(object): conf_dict = get_config_dict() assert len(conf_dict) == len(OPTIONS_DEFAULTS) assert conf_dict != OPTIONS_DEFAULTS + + def test_get_config_dict_int(self, home_dir): + # integer values are interpolated correctly + config_file = home_dir / ".diceware.ini" + config_file.write("\n".join(["[diceware]", "num=3", ""])) + conf_dict = get_config_dict() + assert "num" in conf_dict.keys() + assert conf_dict["num"] == 3 -- GitLab