Basic documentation for the xhtml11 writer and frontend.
[docutils.git] / test / test_transforms / test_class.py
blobf31829a5268fe765f57c2e265b9b252154492491
1 #! /usr/bin/env python
3 # $Id$
4 # Author: David Goodger <goodger@python.org>
5 # Copyright: This module has been placed in the public domain.
7 """
8 Tests for `docutils.transforms.misc.ClassAttribute`.
9 """
11 from __init__ import DocutilsTestSupport
12 from docutils.parsers.rst import Parser
15 def suite():
16 parser = Parser()
17 s = DocutilsTestSupport.TransformTestSuite(parser)
18 s.generateTests(totest)
19 return s
21 totest = {}
23 totest['class'] = ((), [
24 ["""\
25 .. class:: one
27 paragraph
28 """,
29 """\
30 <document source="test data">
31 <paragraph classes="one">
32 paragraph
33 """],
34 ["""\
35 .. class:: two
38 Block quote
39 """,
40 """\
41 <document source="test data">
42 <comment xml:space="preserve">
43 <block_quote classes="two">
44 <paragraph>
45 Block quote
46 """],
47 ["""\
48 Block quote
50 .. class:: three
52 Paragraph
53 """,
54 """\
55 <document source="test data">
56 <block_quote>
57 <paragraph>
58 Block quote
59 <paragraph classes="three">
60 Paragraph
61 """],
62 ["""\
63 .. class:: four
65 Section Title
66 =============
68 Paragraph
69 """,
70 """\
71 <document source="test data">
72 <section classes="four" ids="section-title" names="section\ title">
73 <title>
74 Section Title
75 <paragraph>
76 Paragraph
77 """],
78 ["""\
79 .. class:: multiple
81 paragraph 1
83 paragraph 2
84 """,
85 """\
86 <document source="test data">
87 <paragraph classes="multiple">
88 paragraph 1
89 <paragraph classes="multiple">
90 paragraph 2
91 """],
92 ["""\
93 .. class:: multiple
95 .. Just a comment. It's silly, but possible
96 """,
97 """\
98 <document source="test data">
99 <comment classes="multiple" xml:space="preserve">
100 Just a comment. It's silly, but possible
101 """],
102 ["""\
103 .. class::
105 .. class:: 99
106 """,
107 """\
108 <document source="test data">
109 <system_message level="3" line="1" source="test data" type="ERROR">
110 <paragraph>
111 Error in "class" directive:
112 1 argument(s) required, 0 supplied.
113 <literal_block xml:space="preserve">
114 .. class::
115 <system_message level="3" line="3" source="test data" type="ERROR">
116 <paragraph>
117 Invalid class attribute value for "class" directive: "99".
118 <literal_block xml:space="preserve">
119 .. class:: 99
120 """],
121 ["""\
122 .. class:: one
123 .. class:: two
125 multiple class values may be assigned to one element
126 """,
127 """\
128 <document source="test data">
129 <paragraph classes="one two">
130 multiple class values may be assigned to one element
131 """],
132 ["""\
133 .. class:: one two
135 multiple class values may be assigned to one element
136 """,
137 """\
138 <document source="test data">
139 <paragraph classes="one two">
140 multiple class values may be assigned to one element
141 """],
142 ["""\
143 .. class:: fancy
145 2. List starts at 2.
146 3. Class should apply to list, not to system message.
147 """,
148 """\
149 <document source="test data">
150 <enumerated_list classes="fancy" enumtype="arabic" prefix="" start="2" suffix=".">
151 <list_item>
152 <paragraph>
153 List starts at 2.
154 <list_item>
155 <paragraph>
156 Class should apply to list, not to system message.
157 <system_message level="1" line="3" source="test data" type="INFO">
158 <paragraph>
159 Enumerated list start value not ordinal-1: "2" (ordinal 2)
160 """],
161 ["""\
162 2. List starts at 2.
163 3. Class should apply to next paragraph, not to system message.
165 .. class:: fancy
167 A paragraph.
168 """,
169 """\
170 <document source="test data">
171 <enumerated_list enumtype="arabic" prefix="" start="2" suffix=".">
172 <list_item>
173 <paragraph>
174 List starts at 2.
175 <list_item>
176 <paragraph>
177 Class should apply to next paragraph, not to system message.
178 <system_message level="1" line="1" source="test data" type="INFO">
179 <paragraph>
180 Enumerated list start value not ordinal-1: "2" (ordinal 2)
181 <paragraph classes="fancy">
182 A paragraph.
183 """],
187 if __name__ == '__main__':
188 import unittest
189 unittest.main(defaultTest='suite')