getkey() and __eq__ for a SymLink
authorgwen <gremond@cadoles.com>
Fri, 30 Nov 2012 14:08:34 +0000 (15:08 +0100)
committergwen <gremond@cadoles.com>
Fri, 30 Nov 2012 14:08:34 +0000 (15:08 +0100)
tiramisu/config.py
tiramisu/option.py

index 89df89f..eb60364 100644 (file)
@@ -375,6 +375,8 @@ class Config(object):
 
     def __eq__(self, other):
         "Config comparison"
+        if not isinstance(other, OptionDescription):
+            return False
         return self.getkey() == other.getkey()
 
     def __ne__(self, other):
index 08b6c11..59b0bdb 100644 (file)
@@ -380,6 +380,14 @@ class SymLinkOption(object):
     def setoption(self, config, value, who):
         setattr(config, self.path, value) # .setoption(self.path, value, who)
 
+    def __getattr__(self, name):
+        if name not in ('setoption', 'getkey'):
+            raise TypeError("shall not call {0} method/attribute on "
+                "SymLinkOption {1}".format(name, self._name))
+
+    def getkey(self, value):
+        return value
+
 class IPOption(Option):
     opt_type = 'ip'