diff options
author | Takayuki Shimizukawa <shimizukawa@gmail.com> | 2014-07-12 20:50:15 +0900 |
---|---|---|
committer | Takayuki Shimizukawa <shimizukawa@gmail.com> | 2014-07-12 20:50:15 +0900 |
commit | 91709946d670900efa2c3c13b2a3c87bbfcc3d8f (patch) | |
tree | 34f516f1e74272fd2cce7cee007d1bb13bc26288 /tests/test_py_domain.py | |
parent | 4d69072f44352795573ca276a6aa6a4379bd9228 (diff) | |
download | sphinx-git-91709946d670900efa2c3c13b2a3c87bbfcc3d8f.tar.gz |
* Fix: py:function directive generate incorrectly signature when specifying a default parameter with an empty list `[]`. Closes #1503
Diffstat (limited to 'tests/test_py_domain.py')
-rw-r--r-- | tests/test_py_domain.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/test_py_domain.py b/tests/test_py_domain.py new file mode 100644 index 000000000..68634d832 --- /dev/null +++ b/tests/test_py_domain.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +""" + test_py_domain + ~~~~~~~~~~~~~~ + + Tests the Python Domain + + :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +from sphinx import addnodes +from sphinx.domains.python import py_sig_re, _pseudo_parse_arglist + + +def parse(sig): + m = py_sig_re.match(sig) + if m is None: + raise ValueError + name_prefix, name, arglist, retann = m.groups() + signode = addnodes.desc_signature(sig, '') + _pseudo_parse_arglist(signode, arglist) + return signode.astext() + + +def test_function_signatures(): + + rv = parse('func(a=1) -> int object') + assert unicode(rv) == u'a=1' + + rv = parse('func(a=1, [b=None])') + assert unicode(rv) == u'a=1, [b=None]' + + rv = parse('func(a=1[, b=None])') + assert unicode(rv) == u'a=1, [b=None]' + + rv = parse("compile(source : string, filename, symbol='file')") + assert unicode(rv) == u"source : string, filename, symbol='file'" + + rv = parse('func(a=[], [b=None])') + assert unicode(rv) == u'a=[], [b=None]' + + rv = parse('func(a=[][, b=None])') + assert unicode(rv) == u'a=[], [b=None]' |