summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-12-18 11:21:12 -0700
committerJason Gerard DeRose <jderose@redhat.com>2008-12-18 11:21:12 -0700
commit46e37ab14491db06ffa46b682c079c397e644014 (patch)
tree5aa95067a1bc0d97f93406a69714ddc7d27fe41b
parent4d1681176afc45c57fb4316892f939bda1bacf1d (diff)
downloadfreeipa-46e37ab14491db06ffa46b682c079c397e644014.tar.gz
freeipa-46e37ab14491db06ffa46b682c079c397e644014.tar.xz
freeipa-46e37ab14491db06ffa46b682c079c397e644014.zip
New Param: ported Param.__repr__() and corresponding unit test
-rw-r--r--ipalib/parameter.py11
-rw-r--r--tests/test_ipalib/test_parameter.py12
2 files changed, 23 insertions, 0 deletions
diff --git a/ipalib/parameter.py b/ipalib/parameter.py
index fca95b0ef..76a9cd508 100644
--- a/ipalib/parameter.py
+++ b/ipalib/parameter.py
@@ -24,6 +24,7 @@ Parameter system for command plugins.
from types import NoneType
from plugable import ReadOnly, lock, check_name
from constants import NULLS, TYPE_ERROR, CALLABLE_ERROR
+from util import make_repr
class DefaultFrom(ReadOnly):
@@ -287,6 +288,16 @@ class Param(ReadOnly):
# And we're done.
lock(self)
+ def __repr__(self):
+ """
+ Return an expresion that could construct this `Param` instance.
+ """
+ return make_repr(
+ self.__class__.__name__,
+ self.param_spec,
+ **self.__kw
+ )
+
def normalize(self, value):
"""
Normalize ``value`` using normalizer callback.
diff --git a/tests/test_ipalib/test_parameter.py b/tests/test_ipalib/test_parameter.py
index d7f8e45c3..ef248b702 100644
--- a/tests/test_ipalib/test_parameter.py
+++ b/tests/test_ipalib/test_parameter.py
@@ -188,6 +188,18 @@ class test_Param(ClassChecker):
assert str(e) == \
"Param('my_param'): takes no such kwargs: 'ape', 'great'"
+ def test_repr(self):
+ """
+ Test the `ipalib.parameter.Param.__repr__` method.
+ """
+ for name in ['name', 'name?', 'name*', 'name+']:
+ o = self.cls(name)
+ assert repr(o) == 'Param(%r)' % name
+ o = self.cls('name', required=False)
+ assert repr(o) == "Param('name', required=False)"
+ o = self.cls('name', multivalue=True)
+ assert repr(o) == "Param('name', multivalue=True)"
+
def test_convert(self):
"""
Test the `ipalib.parameter.Param.convert` method.