diff options
Diffstat (limited to 'test/test_transforms/test_class.py')
-rwxr-xr-x | test/test_transforms/test_class.py | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/test/test_transforms/test_class.py b/test/test_transforms/test_class.py new file mode 100755 index 000000000..4cd874ea3 --- /dev/null +++ b/test/test_transforms/test_class.py @@ -0,0 +1,191 @@ +#! /usr/bin/env python + +# Author: David Goodger +# Contact: goodger@users.sourceforge.net +# Revision: $Revision$ +# Date: $Date$ +# Copyright: This module has been placed in the public domain. + +""" +Tests for `docutils.transforms.misc.ClassAttribute`. +""" + +from __init__ import DocutilsTestSupport +from docutils.parsers.rst import Parser + + +def suite(): + parser = Parser() + s = DocutilsTestSupport.TransformTestSuite(parser) + s.generateTests(totest) + return s + +totest = {} + +totest['class'] = ((), [ +["""\ +.. class:: one + +paragraph +""", +"""\ +<document source="test data"> + <paragraph classes="one"> + paragraph +"""], +["""\ +.. class:: two +.. + + Block quote +""", +"""\ +<document source="test data"> + <comment xml:space="preserve"> + <block_quote classes="two"> + <paragraph> + Block quote +"""], +["""\ + Block quote + + .. class:: three + +Paragraph +""", +"""\ +<document source="test data"> + <block_quote> + <paragraph> + Block quote + <paragraph classes="three"> + Paragraph +"""], +["""\ +.. class:: four + +Section Title +============= + +Paragraph +""", +"""\ +<document source="test data"> + <section classes="four" ids="section-title" names="section\ title"> + <title> + Section Title + <paragraph> + Paragraph +"""], +["""\ +.. class:: multiple + + paragraph 1 + + paragraph 2 +""", +"""\ +<document source="test data"> + <paragraph classes="multiple"> + paragraph 1 + <paragraph classes="multiple"> + paragraph 2 +"""], +["""\ +.. class:: multiple + + .. Just a comment. It's silly, but possible +""", +"""\ +<document source="test data"> + <comment classes="multiple" xml:space="preserve"> + Just a comment. It's silly, but possible +"""], +["""\ +.. class:: + +.. class:: 99 +""", +"""\ +<document source="test data"> + <system_message level="3" line="1" source="test data" type="ERROR"> + <paragraph> + Error in "class" directive: + 1 argument(s) required, 0 supplied. + <literal_block xml:space="preserve"> + .. class:: + <system_message level="3" line="3" source="test data" type="ERROR"> + <paragraph> + Invalid class attribute value for "class" directive: "99". + <literal_block xml:space="preserve"> + .. class:: 99 +"""], +["""\ +.. class:: one +.. class:: two + +multiple class values may be assigned to one element +""", +"""\ +<document source="test data"> + <paragraph classes="one two"> + multiple class values may be assigned to one element +"""], +["""\ +.. class:: one two + +multiple class values may be assigned to one element +""", +"""\ +<document source="test data"> + <paragraph classes="one two"> + multiple class values may be assigned to one element +"""], +["""\ +.. class:: fancy + +2. List starts at 2. +3. Class should apply to list, not to system message. +""", +"""\ +<document source="test data"> + <enumerated_list classes="fancy" enumtype="arabic" prefix="" start="2" suffix="."> + <list_item> + <paragraph> + List starts at 2. + <list_item> + <paragraph> + Class should apply to list, not to system message. + <system_message level="1" line="3" source="test data" type="INFO"> + <paragraph> + Enumerated list start value not ordinal-1: "2" (ordinal 2) +"""], +["""\ +2. List starts at 2. +3. Class should apply to next paragraph, not to system message. + + .. class:: fancy + +A paragraph. +""", +"""\ +<document source="test data"> + <enumerated_list enumtype="arabic" prefix="" start="2" suffix="."> + <list_item> + <paragraph> + List starts at 2. + <list_item> + <paragraph> + Class should apply to next paragraph, not to system message. + <system_message level="1" line="1" source="test data" type="INFO"> + <paragraph> + Enumerated list start value not ordinal-1: "2" (ordinal 2) + <paragraph classes="fancy"> + A paragraph. +"""], +]) + + +if __name__ == '__main__': + import unittest + unittest.main(defaultTest='suite') |