From: <mi...@us...> - 2013-03-04 13:20:56
|
Revision: 7621 http://docutils.svn.sourceforge.net/docutils/?rev=7621&view=rev Author: milde Date: 2013-03-04 13:20:49 +0000 (Mon, 04 Mar 2013) Log Message: ----------- Fix [ 3606028 ] ``assert`` is skipped with ``python -O``. Also, raise ValueError with list of valid units if length_or_percentage_or_unitless() fails. Modified Paths: -------------- trunk/docutils/HISTORY.txt trunk/docutils/docutils/parsers/rst/directives/__init__.py trunk/docutils/test/test_parsers/test_rst/test_directives/test_images.py Modified: trunk/docutils/HISTORY.txt =================================================================== --- trunk/docutils/HISTORY.txt 2013-03-04 10:07:58 UTC (rev 7620) +++ trunk/docutils/HISTORY.txt 2013-03-04 13:20:49 UTC (rev 7621) @@ -25,6 +25,10 @@ - Fix [ 3601607 ] node.__repr__() must return `str` instance. +* docutils/parsers/rst/directives/__init__.py + + - Fix [ 3606028 ] ``assert`` is skipped with ``python -O``. + * docutils/parsers/rst/directives/images.py - Apply [ 3599485 ] node source/line information for sphinx translation. Modified: trunk/docutils/docutils/parsers/rst/directives/__init__.py =================================================================== --- trunk/docutils/docutils/parsers/rst/directives/__init__.py 2013-03-04 10:07:58 UTC (rev 7620) +++ trunk/docutils/docutils/parsers/rst/directives/__init__.py 2013-03-04 13:20:49 UTC (rev 7621) @@ -232,9 +232,8 @@ """ match = re.match(r'^([0-9.]+) *(%s)$' % '|'.join(units), argument) try: - assert match is not None float(match.group(1)) - except (AssertionError, ValueError): + except (AttributeError, ValueError): raise ValueError( 'not a positive measure of one of the following units:\n%s' % ' '.join(['"%s"' % i for i in units])) @@ -262,7 +261,11 @@ try: return get_measure(argument, length_units + ['%']) except ValueError: - return get_measure(argument, ['']) + default + try: + return get_measure(argument, ['']) + default + except ValueError: + # raise ValueError with list of valid units: + return get_measure(argument, length_units + ['%']) def class_option(argument): """ Modified: trunk/docutils/test/test_parsers/test_rst/test_directives/test_images.py =================================================================== --- trunk/docutils/test/test_parsers/test_rst/test_directives/test_images.py 2013-03-04 10:07:58 UTC (rev 7620) +++ trunk/docutils/test/test_parsers/test_rst/test_directives/test_images.py 2013-03-04 13:20:49 UTC (rev 7621) @@ -164,6 +164,22 @@ """], ["""\ .. image:: picture.png + :width: 20mc +""", +"""\ +<document source="test data"> + <system_message level="3" line="1" source="test data" type="ERROR"> + <paragraph> + Error in "image" directive: + invalid option value: (option: "width"; value: \'20mc\') + not a positive measure of one of the following units: + "em" "ex" "px" "in" "cm" "mm" "pt" "pc" "%". + <literal_block xml:space="preserve"> + .. image:: picture.png + :width: 20mc +"""], +["""\ +.. image:: picture.png :height: 100 :width: 200 :scale: 50 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |