Signed-off-by: Zygmunt Krynicki <[email protected]>
---
plainbox/plainbox/impl/secure/config.py | 7 ++++++-
plainbox/plainbox/impl/secure/test_config.py | 27 +++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/plainbox/plainbox/impl/secure/config.py
b/plainbox/plainbox/impl/secure/config.py
index 7e8f87f..d3c9232 100644
--- a/plainbox/plainbox/impl/secure/config.py
+++ b/plainbox/plainbox/impl/secure/config.py
@@ -672,7 +672,12 @@ def KindValidator(variable, new_value):
A validator ensuring that values match the "kind" of the variable.
"""
if not isinstance(new_value, variable.kind):
- return _("expected a {}").format(variable.kind.__name__)
+ return {
+ bool: _("expected a boolean"),
+ int: _("expected an integer"),
+ float: _("expected a floating point number"),
+ str: _("expected a string"),
+ }[variable.kind]
class PatternValidator(IValidator):
diff --git a/plainbox/plainbox/impl/secure/test_config.py
b/plainbox/plainbox/impl/secure/test_config.py
index e1ce0dd..f92f626 100644
--- a/plainbox/plainbox/impl/secure/test_config.py
+++ b/plainbox/plainbox/impl/secure/test_config.py
@@ -321,6 +321,33 @@ class PlainBoxConfigParserTest(TestCase):
self.assertFalse('upper' in all_keys)
+class KindValidatorTests(TestCase):
+
+ class _Config(Config):
+ var_bool = Variable(kind=bool)
+ var_int = Variable(kind=int)
+ var_float = Variable(kind=float)
+ var_str = Variable(kind=str)
+
+ def test_error_msg(self):
+ """
+ verify that KindValidator() has correct error message for each type
+ """
+ bad_value = object()
+ self.assertEqual(
+ KindValidator(self._Config.var_bool, bad_value),
+ "expected a boolean")
+ self.assertEqual(
+ KindValidator(self._Config.var_int, bad_value),
+ "expected an integer")
+ self.assertEqual(
+ KindValidator(self._Config.var_float, bad_value),
+ "expected a floating point number")
+ self.assertEqual(
+ KindValidator(self._Config.var_str, bad_value),
+ "expected a string")
+
+
class PatternValidatorTests(TestCase):
class _Config(Config):
--
1.9.0
--
Mailing list: https://launchpad.net/~checkbox-dev
Post to : [email protected]
Unsubscribe : https://launchpad.net/~checkbox-dev
More help : https://help.launchpad.net/ListHelp