diff options
Diffstat (limited to 'coverage/tomlconfig.py')
-rw-r--r-- | coverage/tomlconfig.py | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/coverage/tomlconfig.py b/coverage/tomlconfig.py index cf1d82b1..25542f99 100644 --- a/coverage/tomlconfig.py +++ b/coverage/tomlconfig.py @@ -121,28 +121,26 @@ class TomlConfigParser: _, value = self._get(section, option) return value - def getboolean(self, section, option): - name, value = self._get(section, option) - if not isinstance(value, bool): + def _check_type(self, section, option, value, type_, type_desc): + if not isinstance(value, type_): raise ValueError( - 'Option {!r} in section {!r} is not a boolean: {!r}' - .format(option, name, value) + 'Option {!r} in section {!r} is not {}: {!r}' + .format(option, section, type_desc, value) ) + + def getboolean(self, section, option): + name, value = self._get(section, option) + self._check_type(name, option, value, bool, "a boolean") return value def getlist(self, section, option): name, values = self._get(section, option) - if not isinstance(values, list): - raise ValueError( - 'Option {!r} in section {!r} is not a list: {!r}' - .format(option, name, values) - ) + self._check_type(name, option, values, list, "a list") return values def getregexlist(self, section, option): - # Use getlist for list-checking. - values = self.getlist(section, option) name, values = self._get(section, option) + self._check_type(name, option, values, list, "a list") for value in values: value = value.strip() try: @@ -155,20 +153,12 @@ class TomlConfigParser: def getint(self, section, option): name, value = self._get(section, option) - if not isinstance(value, int): - raise ValueError( - 'Option {!r} in section {!r} is not an integer: {!r}' - .format(option, name, value) - ) + self._check_type(name, option, value, int, "an integer") return value def getfloat(self, section, option): name, value = self._get(section, option) if isinstance(value, int): value = float(value) - if not isinstance(value, float): - raise ValueError( - 'Option {!r} in section {!r} is not a float: {!r}' - .format(option, name, value) - ) + self._check_type(name, option, value, float, "a float") return value |