Fix #1203: Does not append space to unknown field names.

If an unknown field name is encountered, a space is only
appended if the field arguments are not empty. Also,
only the first character of the field name is upper cased,
and the case of the rest of the string remains unchanged.
This commit is contained in:
Rob Ruana 2013-06-23 16:06:45 -04:00
parent 7904b0678a
commit 718f4a6f8c
3 changed files with 40 additions and 1 deletions

View File

@ -219,7 +219,9 @@ class DocFieldTransformer(object):
if typedesc is None or typedesc.has_arg != bool(fieldarg):
# either the field name is unknown, or the argument doesn't
# match the spec; capitalize field name and be done with it
new_fieldname = fieldtype.capitalize() + ' ' + fieldarg
new_fieldname = fieldtype[0:1].upper() + fieldtype[1:]
if fieldarg:
new_fieldname = new_fieldname + ' ' + fieldarg
fieldname[0] = nodes.Text(new_fieldname)
entries.append(field)
continue

View File

@ -7,6 +7,32 @@ Testing object descriptions
.. function:: func_without_body()
.. function:: func_with_unknown_field()
: :
: empty field name:
:field_name:
:field_name all lower:
:FIELD_NAME:
:FIELD_NAME ALL CAPS:
:Field_Name:
:Field_Name All Word Caps:
:Field_name:
:Field_name First word cap:
:FIELd_name:
:FIELd_name PARTial caps:
.. function:: func_noindex
:noindex:

View File

@ -196,6 +196,17 @@ HTML_XPATH = {
'Testing object descriptions'),
(".//li[@class='toctree-l1']/a[@href='markup.html']",
'Testing various markup'),
# test unknown field names
(".//th[@class='field-name']", 'Field_name:'),
(".//th[@class='field-name']", 'Field_name all lower:'),
(".//th[@class='field-name']", 'FIELD_NAME:'),
(".//th[@class='field-name']", 'FIELD_NAME ALL CAPS:'),
(".//th[@class='field-name']", 'Field_Name:'),
(".//th[@class='field-name']", 'Field_Name All Word Caps:'),
(".//th[@class='field-name']", 'Field_name:'),
(".//th[@class='field-name']", 'Field_name First word cap:'),
(".//th[@class='field-name']", 'FIELd_name:'),
(".//th[@class='field-name']", 'FIELd_name PARTial caps:'),
# custom sidebar
(".//h4", 'Custom sidebar'),
# docfields