Added support for multiple attributions in a physical block quote (indented text...
[docutils.git] / test / test_parsers / test_rst / test_block_quotes.py
bloba1773a77801914662812a26b9664fcf620b25dfe
1 #! /usr/bin/env python
3 # Author: David Goodger
4 # Contact: goodger@users.sourceforge.net
5 # Revision: $Revision$
6 # Date: $Date$
7 # Copyright: This module has been placed in the public domain.
9 """
10 Tests for states.py.
11 """
13 from __init__ import DocutilsTestSupport
15 def suite():
16 s = DocutilsTestSupport.ParserTestSuite()
17 s.generateTests(totest)
18 return s
20 totest = {}
22 totest['block_quotes'] = [
23 ["""\
24 Line 1.
25 Line 2.
27 Indented.
28 """,
29 """\
30 <document source="test data">
31 <paragraph>
32 Line 1.
33 Line 2.
34 <block_quote>
35 <paragraph>
36 Indented.
37 """],
38 ["""\
39 Line 1.
40 Line 2.
42 Indented 1.
44 Indented 2.
45 """,
46 """\
47 <document source="test data">
48 <paragraph>
49 Line 1.
50 Line 2.
51 <block_quote>
52 <paragraph>
53 Indented 1.
54 <block_quote>
55 <paragraph>
56 Indented 2.
57 """],
58 ["""\
59 Line 1.
60 Line 2.
61 Unexpectedly indented.
62 """,
63 """\
64 <document source="test data">
65 <paragraph>
66 Line 1.
67 Line 2.
68 <system_message level="3" line="3" source="test data" type="ERROR">
69 <paragraph>
70 Unexpected indentation.
71 <block_quote>
72 <paragraph>
73 Unexpectedly indented.
74 """],
75 ["""\
76 Line 1.
77 Line 2.
79 Indented.
80 no blank line
81 """,
82 """\
83 <document source="test data">
84 <paragraph>
85 Line 1.
86 Line 2.
87 <block_quote>
88 <paragraph>
89 Indented.
90 <system_message level="2" line="5" source="test data" type="WARNING">
91 <paragraph>
92 Block quote ends without a blank line; unexpected unindent.
93 <paragraph>
94 no blank line
95 """],
96 ["""\
97 Here is a paragraph.
99 Indent 8 spaces.
101 Indent 4 spaces.
103 Is this correct? Should it generate a warning?
104 Yes, it is correct, no warning necessary.
105 """,
106 """\
107 <document source="test data">
108 <paragraph>
109 Here is a paragraph.
110 <block_quote>
111 <block_quote>
112 <paragraph>
113 Indent 8 spaces.
114 <paragraph>
115 Indent 4 spaces.
116 <paragraph>
117 Is this correct? Should it generate a warning?
118 Yes, it is correct, no warning necessary.
119 """],
120 ["""\
121 Paragraph.
123 Block quote.
125 -- Attribution
127 Paragraph.
129 Block quote.
131 --Attribution
132 """,
133 """\
134 <document source="test data">
135 <paragraph>
136 Paragraph.
137 <block_quote>
138 <paragraph>
139 Block quote.
140 <attribution>
141 Attribution
142 <paragraph>
143 Paragraph.
144 <block_quote>
145 <paragraph>
146 Block quote.
147 <attribution>
148 Attribution
149 """],
150 [u"""\
151 Alternative: true em-dash.
153 Block quote.
155 \u2014 Attribution
157 Alternative: three hyphens.
159 Block quote.
161 --- Attribution
162 """,
163 """\
164 <document source="test data">
165 <paragraph>
166 Alternative: true em-dash.
167 <block_quote>
168 <paragraph>
169 Block quote.
170 <attribution>
171 Attribution
172 <paragraph>
173 Alternative: three hyphens.
174 <block_quote>
175 <paragraph>
176 Block quote.
177 <attribution>
178 Attribution
179 """],
180 ["""\
181 Paragraph.
183 Block quote.
185 -- Attribution line one
186 and line two
188 Paragraph.
190 Block quote.
192 -- Attribution line one
193 and line two
195 Paragraph.
196 """,
197 """\
198 <document source="test data">
199 <paragraph>
200 Paragraph.
201 <block_quote>
202 <paragraph>
203 Block quote.
204 <attribution>
205 Attribution line one
206 and line two
207 <paragraph>
208 Paragraph.
209 <block_quote>
210 <paragraph>
211 Block quote.
212 <attribution>
213 Attribution line one
214 and line two
215 <paragraph>
216 Paragraph.
217 """],
218 ["""\
219 Paragraph.
221 Block quote 1.
223 -- Attribution 1
225 Block quote 2.
227 --Attribution 2
228 """,
229 """\
230 <document source="test data">
231 <paragraph>
232 Paragraph.
233 <block_quote>
234 <paragraph>
235 Block quote 1.
236 <attribution>
237 Attribution 1
238 <block_quote>
239 <paragraph>
240 Block quote 2.
241 <attribution>
242 Attribution 2
243 """],
244 ["""\
245 Paragraph.
247 Block quote 1.
249 -- Attribution 1
251 Block quote 2.
252 """,
253 """\
254 <document source="test data">
255 <paragraph>
256 Paragraph.
257 <block_quote>
258 <paragraph>
259 Block quote 1.
260 <attribution>
261 Attribution 1
262 <block_quote>
263 <paragraph>
264 Block quote 2.
265 """],
266 ["""\
267 Unindented paragraph.
269 Block quote 1.
271 -- Attribution 1
273 Block quote 2.
277 Block quote 3.
278 """,
279 """\
280 <document source="test data">
281 <paragraph>
282 Unindented paragraph.
283 <block_quote>
284 <paragraph>
285 Block quote 1.
286 <attribution>
287 Attribution 1
288 <block_quote>
289 <paragraph>
290 Block quote 2.
291 <comment xml:space="preserve">
292 <block_quote>
293 <paragraph>
294 Block quote 3.
295 """],
296 ["""\
297 Paragraph.
299 -- Not an attribution
301 Paragraph.
303 Block quote.
305 \-- Not an attribution
307 Paragraph.
309 Block quote.
311 -- Not an attribution line one
312 and line two
313 and line three
314 """,
315 """\
316 <document source="test data">
317 <paragraph>
318 Paragraph.
319 <block_quote>
320 <paragraph>
321 -- Not an attribution
322 <paragraph>
323 Paragraph.
324 <block_quote>
325 <paragraph>
326 Block quote.
327 <paragraph>
328 -- Not an attribution
329 <paragraph>
330 Paragraph.
331 <block_quote>
332 <paragraph>
333 Block quote.
334 <definition_list>
335 <definition_list_item>
336 <term>
337 -- Not an attribution line one
338 <definition>
339 <definition_list>
340 <definition_list_item>
341 <term>
342 and line two
343 <definition>
344 <paragraph>
345 and line three
346 """],
347 ["""\
348 Paragraph.
350 -- Not a valid attribution
352 Block quote 1.
354 --Attribution 1
356 --Invalid attribution
358 Block quote 2.
360 --Attribution 2
361 """,
362 """\
363 <document source="test data">
364 <paragraph>
365 Paragraph.
366 <block_quote>
367 <paragraph>
368 -- Not a valid attribution
369 <paragraph>
370 Block quote 1.
371 <attribution>
372 Attribution 1
373 <block_quote>
374 <paragraph>
375 --Invalid attribution
376 <paragraph>
377 Block quote 2.
378 <attribution>
379 Attribution 2
380 """],
384 if __name__ == '__main__':
385 import unittest
386 unittest.main(defaultTest='suite')