summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-13 01:52:17 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-13 01:52:17 +0000
commit0b5efa2a62623e09c7e8e5e97e0feafbc5e19823 (patch)
tree8c13150c8a0cf0bac69c340ae5358e2cb624330c
parentc0b5069fa07889496786523c46b5b15181c26fee (diff)
downloadfreeipa.git-0b5efa2a62623e09c7e8e5e97e0feafbc5e19823.tar.gz
freeipa.git-0b5efa2a62623e09c7e8e5e97e0feafbc5e19823.tar.xz
freeipa.git-0b5efa2a62623e09c7e8e5e97e0feafbc5e19823.zip
134: Added CLI.mcl (Max Command Length) property; added corresponding unit tests
-rw-r--r--ipalib/cli.py12
-rw-r--r--ipalib/tests/test_cli.py41
2 files changed, 53 insertions, 0 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py
index a0b8800f..898f385b 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -50,6 +50,7 @@ def _(arg):
class CLI(object):
__d = None
+ __mcl = None
def __init__(self, api):
self.__api = api
@@ -103,3 +104,14 @@ class CLI(object):
from_cli(m.group(1)),
m.group(2),
)
+
+ def __get_mcl(self):
+ """
+ Returns the Max Command Length.
+ """
+ if self.__mcl is None:
+ if self.__d is None:
+ return None
+ self.__mcl = max(len(k) for k in self.__d)
+ return self.__mcl
+ mcl = property(__get_mcl)
diff --git a/ipalib/tests/test_cli.py b/ipalib/tests/test_cli.py
index d56a4b19..c523e4e8 100644
--- a/ipalib/tests/test_cli.py
+++ b/ipalib/tests/test_cli.py
@@ -37,6 +37,35 @@ def test_from_cli():
assert f('user-add') == 'user_add'
+def get_cmd_name(i):
+ return 'cmd_%d' % i
+
+class DummyCmd(object):
+ def __init__(self, name):
+ self.__name = name
+
+ def __get_name(self):
+ return self.__name
+ name = property(__get_name)
+
+class DummyAPI(object):
+ def __init__(self, cnt):
+ self.__cmd = tuple(self.__cmd_iter(cnt))
+
+ def __get_cmd(self):
+ return self.__cmd
+ cmd = property(__get_cmd)
+
+ def __cmd_iter(self, cnt):
+ for i in xrange(cnt):
+ yield DummyCmd(get_cmd_name(i))
+
+ def finalize(self):
+ pass
+
+
+
+
class test_CLI(ClassChecker):
"""
Tests the `CLI` class.
@@ -65,3 +94,15 @@ class test_CLI(ClassChecker):
)
args = tuple('--%s=%s' % (cli.to_cli(k), v) for (k,v) in kw.items())
assert dict(o.parse_kw(args)) == kw
+
+ def test_mcl(self):
+ """
+ Tests the `mcl` (Max Command Length) property .
+ """
+ cnt = 100
+ api = DummyAPI(cnt)
+ len(api.cmd) == cnt
+ o = self.cls(api)
+ assert o.mcl is None
+ o.finalize()
+ assert o.mcl == 6 # len('cmd_99')