coverage
authorEmmanuel Garette <egarette@cadoles.com>
Sun, 20 Nov 2016 18:39:49 +0000 (19:39 +0100)
committerEmmanuel Garette <egarette@cadoles.com>
Sun, 20 Nov 2016 18:39:49 +0000 (19:39 +0100)
tiramisu/config.py

index d91c905..711e335 100644 (file)
@@ -83,6 +83,8 @@ class SubConfig(object):
             self = self.getattr(step,
                                 force_permissive=force_permissive,
                                 returns_raise=returns_raise)
+            if isinstance(self, Exception):
+                return self, None
         return self, path[-1]
 
     #def __hash__(self):
@@ -270,11 +272,14 @@ class SubConfig(object):
             homeconfig, name = self.cfgimpl_get_home_by_path(
                 name, force_permissive=force_permissive,
                 returns_raise=returns_raise)
-            cfg = homeconfig.getattr(name, force_permissive=force_permissive,
-                                     validate=validate,
-                                     _setting_properties=_setting_properties,
-                                     _self_properties=_self_properties,
-                                     index=index, returns_raise=returns_raise)
+            if isinstance(homeconfig, Exception):
+                cfg = homeconfig
+            else:
+                cfg = homeconfig.getattr(name, force_permissive=force_permissive,
+                                         validate=validate,
+                                         _setting_properties=_setting_properties,
+                                         _self_properties=_self_properties,
+                                         index=index, returns_raise=returns_raise)
         else:
             context = self._cfgimpl_get_context()
             option = self.cfgimpl_get_description().__getattr__(name,