better raise message if try to launch impl_get_information/impl_set_information in...
authorEmmanuel Garette <egarette@cadoles.com>
Fri, 14 Jun 2013 15:52:57 +0000 (17:52 +0200)
committerEmmanuel Garette <egarette@cadoles.com>
Fri, 14 Jun 2013 15:52:57 +0000 (17:52 +0200)
tiramisu/option.py

index 46ad5e9..1c14efc 100644 (file)
@@ -64,19 +64,27 @@ class BaseInformation(object):
         :param key: information's key (ex: "help", "doc"
         :param value: information's value (ex: "the help string")
         """
-        self._impl_informations[key] = value
+        try:
+            self._impl_informations[key] = value
+        except AttributeError:
+            raise AttributeError(_('{0} instance has no attribute '
+                                   'impl_set_information').format(self.__class__.__name__))
 
     def impl_get_information(self, key, default=None):
         """retrieves one information's item
 
         :param key: the item string (ex: "help")
         """
-        if key in self._impl_informations:
-            return self._impl_informations[key]
-        elif default is not None:
-            return default
-        else:
-            raise ValueError(_("Information's item not found: {0}").format(key))
+        try:
+            if key in self._impl_informations:
+                return self._impl_informations[key]
+            elif default is not None:
+                return default
+            else:
+                raise ValueError(_("Information's item not found: {0}").format(key))
+        except AttributeError:
+            raise AttributeError(_('{0} instance has no attribute '
+                                   'impl_get_information').format(self.__class__.__name__))
 
 
 class Option(BaseInformation):