summaryrefslogtreecommitdiffstats
path: root/ipalib/base.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-07-19 06:03:34 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-07-19 06:03:34 +0000
commite8257ad5311a4011625ed28bf6b308b1a9b43776 (patch)
tree1333b0763fab8278e7f72e4f145e23113154d72c /ipalib/base.py
parentef7594ffe1bad349dc539f69ee90708460999a71 (diff)
downloadfreeipa-e8257ad5311a4011625ed28bf6b308b1a9b43776.tar.gz
freeipa-e8257ad5311a4011625ed28bf6b308b1a9b43776.tar.xz
freeipa-e8257ad5311a4011625ed28bf6b308b1a9b43776.zip
5: Fleshed out base.Named, added corresponding unit tests
Diffstat (limited to 'ipalib/base.py')
-rw-r--r--ipalib/base.py27
1 files changed, 20 insertions, 7 deletions
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