summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/public.py2
-rw-r--r--ipalib/tests/test_public.py1
2 files changed, 3 insertions, 0 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index a8c16282..e70103ea 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -202,6 +202,8 @@ def generate_option(name):
"""
Returns an `Param` instance by parsing ``name``.
"""
+ if type(name) is Param:
+ return name
if name.endswith('?'):
kw = dict(required=False, multivalue=False)
name = name[:-1]
diff --git a/ipalib/tests/test_public.py b/ipalib/tests/test_public.py
index 42127ea4..bd6f3a95 100644
--- a/ipalib/tests/test_public.py
+++ b/ipalib/tests/test_public.py
@@ -319,6 +319,7 @@ def test_generate_option():
assert type(o) is public.Param
assert type(o.type) is ipa_types.Unicode
assert o.name == 'arg'
+ assert f(o) is o
o = f('arg')
assert o.required is True
assert o.multivalue is False