diff options
| author | holger krekel <holger@merlinux.eu> | 2010-07-14 22:20:37 +0200 |
|---|---|---|
| committer | holger krekel <holger@merlinux.eu> | 2010-07-14 22:20:37 +0200 |
| commit | 1f7c621fb906e18ddf3bb3d082aa66db6df54c05 (patch) | |
| tree | cab4b36b9aa004132d1bb4bd30951a0e174b436d | |
| parent | 4772a65fdf3a7e28ad5573e76eb485e3998d8088 (diff) | |
| download | tox-1f7c621fb906e18ddf3bb3d082aa66db6df54c05.tar.gz | |
only allow True or False on boolean config values
| -rw-r--r-- | CHANGELOG.txt | 3 | ||||
| -rw-r--r-- | tests/test_config.py | 6 | ||||
| -rw-r--r-- | tox/_config.py | 8 |
3 files changed, 16 insertions, 1 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 736353b..6e58f33 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -15,6 +15,9 @@ - added unittest2 examples contributed by Michael Foord +- only allow 'True' or 'False' for boolean config values + (lowercase / uppercase is irrelevant) + 0.6 ----------------- diff --git a/tests/test_config.py b/tests/test_config.py index 9b30cd6..160270f 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -215,11 +215,17 @@ class TestIniParser: [section] key1=True key2=False + key1a=true + key2a=falsE + key5=yes """) reader = IniReader(config._cfg) assert reader.getbool("section", "key1") == True + assert reader.getbool("section", "key1a") == True assert reader.getbool("section", "key2") == False + assert reader.getbool("section", "key2a") == False py.test.raises(KeyError, 'reader.getbool("section", "key3")') + py.test.raises(tox.exception.ConfigError, 'reader.getbool("section", "key5")') class TestConfigTestEnv: def test_defaults(self, tmpdir, newconfig): diff --git a/tox/_config.py b/tox/_config.py index 0cdadd6..8dc53a7 100644 --- a/tox/_config.py +++ b/tox/_config.py @@ -272,7 +272,13 @@ class IniReader: raise KeyError("no config value [%s] %s found" % ( section, name)) if not isinstance(s, bool): - s = (s == "True" and True or False) + if s.lower() == "true": + s = True + elif s.lower() == "false": + s = False + else: + raise tox.exception.ConfigError( + "boolean value %r needs to be 'True' or 'False'") return s def getdefault(self, section, name, default=None, replace=True): |
