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