summaryrefslogtreecommitdiff
path: root/tests/test_py_domain.py
diff options
context:
space:
mode:
authorTakayuki Shimizukawa <shimizukawa@gmail.com>2014-07-12 20:50:15 +0900
committerTakayuki Shimizukawa <shimizukawa@gmail.com>2014-07-12 20:50:15 +0900
commit91709946d670900efa2c3c13b2a3c87bbfcc3d8f (patch)
tree34f516f1e74272fd2cce7cee007d1bb13bc26288 /tests/test_py_domain.py
parent4d69072f44352795573ca276a6aa6a4379bd9228 (diff)
downloadsphinx-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.py44
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]'