From e8257ad5311a4011625ed28bf6b308b1a9b43776 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Sat, 19 Jul 2008 06:03:34 +0000 Subject: 5: Fleshed out base.Named, added corresponding unit tests --- ipalib/base.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'ipalib/base.py') diff --git a/ipalib/base.py b/ipalib/base.py index 96dd300d..c7a0cf99 100644 --- a/ipalib/base.py +++ b/ipalib/base.py @@ -26,18 +26,31 @@ import exceptions class Named(object): - #def __init__(self, prefix): - # clsname = self.__class__.__name__ + prefix = None + + @classmethod + def clsname(cls): + return cls.__name__ + + def __init__(self): + clsname = self.clsname() + assert type(self.prefix) is str + prefix = self.prefix + '_' + if not clsname.startswith(prefix): + raise exceptions.PrefixError(clsname, prefix) + self.__name = clsname[len(prefix):] + self.__name_cli = self.__name.replace('_', '-') + def __get_name(self): - return self.__class__.__name__ + return self.__name name = property(__get_name) - def __get_cli_name(self): - return self.name.replace('_', '-') - cli_name = property(__get_cli_name) + def __get_name_cli(self): + return self.__name_cli + name_cli = property(__get_name_cli) -class Command(Named): +class Command(object): def normalize(self, kw): raise NotImplementedError -- cgit