diff --git a/tiramisu/config.py b/tiramisu/config.py index 89df89f..eb60364 100644 --- a/tiramisu/config.py +++ b/tiramisu/config.py @@ -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): diff --git a/tiramisu/option.py b/tiramisu/option.py index 08b6c11..59b0bdb 100644 --- a/tiramisu/option.py +++ b/tiramisu/option.py @@ -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'