summaryrefslogtreecommitdiff
path: root/tests/test_py_domain.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_py_domain.py')
-rw-r--r--tests/test_py_domain.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/test_py_domain.py b/tests/test_py_domain.py
new file mode 100644
index 000000000..87f6eb98b
--- /dev/null
+++ b/tests/test_py_domain.py
@@ -0,0 +1,46 @@
+# -*- 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 six import text_type
+
+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 text_type(rv) == u'a=1'
+
+ rv = parse('func(a=1, [b=None])')
+ assert text_type(rv) == u'a=1, [b=None]'
+
+ rv = parse('func(a=1[, b=None])')
+ assert text_type(rv) == u'a=1, [b=None]'
+
+ rv = parse("compile(source : string, filename, symbol='file')")
+ assert text_type(rv) == u"source : string, filename, symbol='file'"
+
+ rv = parse('func(a=[], [b=None])')
+ assert text_type(rv) == u'a=[], [b=None]'
+
+ rv = parse('func(a=[][, b=None])')
+ assert text_type(rv) == u'a=[], [b=None]'