Fix #4260: autodoc: keyword only argument separator is not disappeared

This commit is contained in:
Takeshi KOMIYA committed 2018-02-13 02:13:38 +09:00
1 parent 419021e82f
commit 795ca7a0c9
4 files changed
+34 -1

No files matched your search

+3
View File
@@ -16,6 +16,9 @@ Features added
Bugs fixed
----------
* #4260: autodoc: keyword only argument separator is not disappeared if it is
appeared at top of the argument list
Testing
--------
+2 -1
View File
@@ -390,7 +390,8 @@ class Signature(object):
# insert '*' between POSITIONAL args and KEYWORD_ONLY args::
# func(a, b, *, c, d):
if param.kind == param.KEYWORD_ONLY and last_kind in (param.POSITIONAL_OR_KEYWORD,
param.POSITIONAL_ONLY):
param.POSITIONAL_ONLY,
None):
args.append('*')
if param.kind in (param.POSITIONAL_ONLY,
+3
View File
@@ -21,6 +21,9 @@ pytest_plugins = 'sphinx.testing.fixtures'
collect_ignore = ['roots']
# Disable Python version-specific
if sys.version_info < (3,):
collect_ignore += ['py3']
if sys.version_info < (3, 5):
collect_ignore += ['py35']
+26
View File
@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
"""
py3/test_util_inspect
~~~~~~~~~~~~~~~~~~~~~
Tests util.inspect functions.
:copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from sphinx.util import inspect
def test_Signature_keyword_only_arguments():
def func1(arg1, arg2, *, arg3=None, arg4=None):
pass
def func2(*, arg3, arg4):
pass
sig = inspect.Signature(func1).format_args()
assert sig == '(arg1, arg2, *, arg3=None, arg4=None)'
sig = inspect.Signature(func2).format_args()
assert sig == '(*, arg3, arg4)'