Skip to content

Commit 56f7011

Browse files
committed
Removed code duplication
1 parent 1f64718 commit 56f7011

File tree

2 files changed

+20
-25
lines changed

2 files changed

+20
-25
lines changed

src/robotlibcore.py

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -101,28 +101,22 @@ def get_keyword_arguments(self, name):
101101
kw_method = self.__get_keyword(name)
102102
if kw_method is None:
103103
return None
104-
if robot_version >= '3.2':
105-
return self.__new_arg_spec(kw_method)
106-
return self.__old_arg_spec(kw_method)
107-
108-
def __new_arg_spec(self, kw_method):
109104
args, defaults, varargs, kwargs = self.__get_arg_spec(kw_method)
110-
args = [(arg, ) for arg in args]
111-
args += [(name, value) for name, value in defaults]
105+
if robot_version >= '3.2':
106+
args += self.__new_default_spec(defaults)
107+
else:
108+
args += self.__old_default_spec(defaults)
112109
if varargs:
113-
args.append(('*{}'.format(varargs), ))
110+
args.append('*%s' % varargs)
114111
if kwargs:
115-
args.append(('**{}'.format(kwargs), ))
112+
args.append('**%s' % kwargs)
116113
return args
117114

118-
def __old_arg_spec(self, kw_method):
119-
args, defaults, varargs, kwargs = self.__get_arg_spec(kw_method)
120-
args += ['{}={}'.format(name, value) for name, value in defaults]
121-
if varargs:
122-
args.append('*{}'.format(varargs))
123-
if kwargs:
124-
args.append('**{}'.format(kwargs))
125-
return args
115+
def __new_default_spec(self, defaults):
116+
return [(name, value) for name, value in defaults]
117+
118+
def __old_default_spec(self, defaults):
119+
return ['{}={}'.format(name, value) for name, value in defaults]
126120

127121
def __get_arg_spec(self, kw):
128122
if PY2:

utest/test_robotlibcore.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ def test_dir():
3737
'_DynamicCore__get_keyword_tags_supported',
3838
'_DynamicCore__get_typing_hints',
3939
'_DynamicCore__join_defaults_with_types',
40-
'_DynamicCore__new_arg_spec',
41-
'_DynamicCore__old_arg_spec',
40+
'_DynamicCore__new_default_spec',
41+
'_DynamicCore__old_default_spec',
4242
'_HybridCore__get_members',
4343
'_HybridCore__get_members_from_instance',
4444
'_custom_name',
@@ -76,8 +76,8 @@ def test_dir():
7676
'_DynamicCore__get_keyword_path',
7777
'_DynamicCore__get_keyword_tags_supported',
7878
'_DynamicCore__join_defaults_with_types',
79-
'_DynamicCore__new_arg_spec',
80-
'_DynamicCore__old_arg_spec',
79+
'_DynamicCore__new_default_spec',
80+
'_DynamicCore__old_default_spec',
8181
'get_keyword_arguments',
8282
'get_keyword_documentation',
8383
'get_keyword_source',
@@ -115,10 +115,11 @@ def test_get_keyword_arguments_rf31():
115115
@pytest.mark.skipif(robot__version < '3.2', reason='For RF 3.2 or greater')
116116
def test_get_keyword_arguments_rf32():
117117
args = DynamicLibrary().get_keyword_arguments
118-
assert args('mandatory') == [('arg1', ), ('arg2', )]
119-
assert args('defaults') == [('arg1', ), ('arg2', 'default'), ('arg3', 3)]
120-
assert args('varargs_and_kwargs') == [('*args', ), ('**kws', )]
121-
assert args('all_arguments') == [('mandatory', ), ('default', 'value'), ('*varargs', ), ('**kwargs', )]
118+
assert args('mandatory') == ['arg1', 'arg2']
119+
assert args('defaults') == ['arg1', ('arg2', 'default'), ('arg3', 3)]
120+
assert args('varargs_and_kwargs') == ['*args', '**kws']
121+
assert args('kwargs_only') == ['**kws']
122+
assert args('all_arguments') == ['mandatory', ('default', 'value'), '*varargs', '**kwargs']
122123
assert args('__init__') == [('arg', None)]
123124
assert args('__foobar__') is None
124125

0 commit comments

Comments
 (0)