Skip to content

Commit

Permalink
Add FullArgSpecs to test.
Browse files Browse the repository at this point in the history
  • Loading branch information
MarkDaoust authored Apr 4, 2018
1 parent e2c8ac7 commit 9c9621b
Showing 1 changed file with 34 additions and 13 deletions.
47 changes: 34 additions & 13 deletions parser_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,6 @@ def test_generate_index(self):
self.assertIn('<code>test_function', docs)

def test_argspec_for_functools_partial(self):

# pylint: disable=unused-argument
def test_function_for_partial1(arg1, arg2, kwarg1=1, kwarg2=2):
pass
Expand All @@ -409,45 +408,67 @@ def test_function_for_partial2(arg1, arg2, *my_args, **my_kwargs):

# pylint: disable=protected-access
# Make sure everything works for regular functions.
expected = tf_inspect.ArgSpec(['arg1', 'arg2', 'kwarg1', 'kwarg2'], None,
None, (1, 2))
expected = tf_inspect.FullArgSpec(args=['arg1', 'arg2', 'kwarg1', 'kwarg2'],
varargs=None, varkw=None, defaults=(1, 2),
kwonlyargs=[], kwonlydefaults={},
annotations={})
self.assertEqual(expected, parser._get_arg_spec(test_function_for_partial1))

# Make sure doing nothing works.
expected = tf_inspect.ArgSpec(['arg1', 'arg2', 'kwarg1', 'kwarg2'], None,
None, (1, 2))
expected = tf_inspect.FullArgSpec(args=['arg1', 'arg2', 'kwarg1', 'kwarg2'],
varargs=None, varkw=None, defaults=(1, 2),
kwonlyargs=[], kwonlydefaults={},
annotations={})
partial = functools.partial(test_function_for_partial1)
self.assertEqual(expected, parser._get_arg_spec(partial))

# Make sure setting args from the front works.
expected = tf_inspect.ArgSpec(['arg2', 'kwarg1', 'kwarg2'], None, None,
(1, 2))
expected = tf_inspect.FullArgSpec(args=['arg2', 'kwarg1', 'kwarg2'],
varargs=None, varkw=None, defaults=(1, 2),
kwonlyargs=[], kwonlydefaults={},
annotations={})
partial = functools.partial(test_function_for_partial1, 1)
self.assertEqual(expected, parser._get_arg_spec(partial))

expected = tf_inspect.ArgSpec(['kwarg2',], None, None, (2,))
expected = tf_inspect.FullArgSpec(args=['kwarg2'],
varargs=None, varkw=None, defaults=(2,),
kwonlyargs=[], kwonlydefaults={},
annotations={})
partial = functools.partial(test_function_for_partial1, 1, 2, 3)
self.assertEqual(expected, parser._get_arg_spec(partial))

# Make sure setting kwargs works.
expected = tf_inspect.ArgSpec(['arg1', 'arg2', 'kwarg2'], None, None, (2,))
expected = tf_inspect.FullArgSpec(args=['arg1', 'arg2', 'kwarg2'],
varargs=None, varkw=None, defaults=(2,),
kwonlyargs=[], kwonlydefaults={},
annotations={})
partial = functools.partial(test_function_for_partial1, kwarg1=0)
self.assertEqual(expected, parser._get_arg_spec(partial))

expected = tf_inspect.ArgSpec(['arg1', 'arg2', 'kwarg1'], None, None, (1,))
expected = tf_inspect.FullArgSpec(args=['arg1', 'arg2', 'kwarg1'],
varargs=None, varkw=None, defaults=(1,),
kwonlyargs=[], kwonlydefaults={},
annotations={})
partial = functools.partial(test_function_for_partial1, kwarg2=0)
self.assertEqual(expected, parser._get_arg_spec(partial))

expected = tf_inspect.ArgSpec(['arg1'], None, None, ())
expected = tf_inspect.FullArgSpec(args=['arg1'],
varargs=None, varkw=None, defaults=(),
kwonlyargs=[], kwonlydefaults={},
annotations={})
partial = functools.partial(test_function_for_partial1,
arg2=0, kwarg1=0, kwarg2=0)
self.assertEqual(expected, parser._get_arg_spec(partial))

# Make sure *args, *kwargs is accounted for.
expected = tf_inspect.ArgSpec([], 'my_args', 'my_kwargs', ())
expected = tf_inspect.FullArgSpec(args=[],
varargs='my_args', varkw='my_kwargs',
defaults=(),
kwonlyargs=[], kwonlydefaults={},
annotations={})
partial = functools.partial(test_function_for_partial2, 0, 1)
self.assertEqual(expected, parser._get_arg_spec(partial))

# pylint: enable=protected-access

def testSaveReferenceResolver(self):
Expand Down

0 comments on commit 9c9621b

Please sign in to comment.