diff options
Diffstat (limited to 'test/test_parsers/test_rst/test_definition_lists.py')
-rwxr-xr-x | test/test_parsers/test_rst/test_definition_lists.py | 395 |
1 files changed, 395 insertions, 0 deletions
diff --git a/test/test_parsers/test_rst/test_definition_lists.py b/test/test_parsers/test_rst/test_definition_lists.py new file mode 100755 index 000000000..d9f3211c0 --- /dev/null +++ b/test/test_parsers/test_rst/test_definition_lists.py @@ -0,0 +1,395 @@ +#! /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 states.py. +""" + +from __init__ import DocutilsTestSupport + +def suite(): + s = DocutilsTestSupport.ParserTestSuite() + s.generateTests(totest) + return s + +totest = {} + +totest['definition_lists'] = [ +["""\ +term + definition +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + term + <definition> + <paragraph> + definition +"""], +["""\ +term + definition + +paragraph +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + term + <definition> + <paragraph> + definition + <paragraph> + paragraph +"""], +["""\ +term + definition +no blank line +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + term + <definition> + <paragraph> + definition + <system_message level="2" line="3" source="test data" type="WARNING"> + <paragraph> + Definition list ends without a blank line; unexpected unindent. + <paragraph> + no blank line +"""], +["""\ +A paragraph:: + A literal block without a blank line first? +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + A paragraph:: + <definition> + <system_message level="1" line="2" source="test data" type="INFO"> + <paragraph> + Blank line missing before literal block (after the "::")? Interpreted as a definition list item. + <paragraph> + A literal block without a blank line first? +"""], +["""\ +this is not a term; +a term may only be one line long + this is not a definition +""", +"""\ +<document source="test data"> + <paragraph> + this is not a term; + a term may only be one line long + <system_message level="3" line="3" source="test data" type="ERROR"> + <paragraph> + Unexpected indentation. + <block_quote> + <paragraph> + this is not a definition +"""], +["""\ +term 1 + definition 1 + +term 2 + definition 2 +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + term 1 + <definition> + <paragraph> + definition 1 + <definition_list_item> + <term> + term 2 + <definition> + <paragraph> + definition 2 +"""], +["""\ +term 1 + definition 1 (no blank line below) +term 2 + definition 2 +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + term 1 + <definition> + <paragraph> + definition 1 (no blank line below) + <definition_list_item> + <term> + term 2 + <definition> + <paragraph> + definition 2 +"""], +["""\ +term 1 + definition 1 (no blank line below) +term 2 + definition 2 +No blank line after the definition list. +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + term 1 + <definition> + <paragraph> + definition 1 (no blank line below) + <definition_list_item> + <term> + term 2 + <definition> + <paragraph> + definition 2 + <system_message level="2" line="5" source="test data" type="WARNING"> + <paragraph> + Definition list ends without a blank line; unexpected unindent. + <paragraph> + No blank line after the definition list. +"""], +["""\ +term 1 + definition 1 + + term 1a + definition 1a + + term 1b + definition 1b + +term 2 + definition 2 + +paragraph +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + term 1 + <definition> + <paragraph> + definition 1 + <definition_list> + <definition_list_item> + <term> + term 1a + <definition> + <paragraph> + definition 1a + <definition_list_item> + <term> + term 1b + <definition> + <paragraph> + definition 1b + <definition_list_item> + <term> + term 2 + <definition> + <paragraph> + definition 2 + <paragraph> + paragraph +"""], +["""\ +Term : classifier + The ' : ' indicates a classifier in + definition list item terms only. +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + Term + <classifier> + classifier + <definition> + <paragraph> + The ' : ' indicates a classifier in + definition list item terms only. +"""], +["""\ +Term: not a classifier + Because there's no space before the colon. +Term :not a classifier + Because there's no space after the colon. +Term \: not a classifier + Because the colon is escaped. +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + Term: not a classifier + <definition> + <paragraph> + Because there's no space before the colon. + <definition_list_item> + <term> + Term :not a classifier + <definition> + <paragraph> + Because there's no space after the colon. + <definition_list_item> + <term> + Term : not a classifier + <definition> + <paragraph> + Because the colon is escaped. +"""], +["""\ +``Term : not a classifier`` + Because the ' : ' is inside an inline literal. +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + <literal> + Term : not a classifier + <definition> + <paragraph> + Because the ' : ' is inside an inline literal. +"""], +["""\ +Term `with *inline ``text **errors : classifier `with *errors ``too + Definition `with *inline ``text **markup errors. +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + Term \n\ + <problematic ids="id2" refid="id1"> + ` + with \n\ + <problematic ids="id4" refid="id3"> + * + inline \n\ + <problematic ids="id6" refid="id5"> + `` + text \n\ + <problematic ids="id8" refid="id7"> + ** + errors + <classifier> + classifier \n\ + <problematic ids="id10" refid="id9"> + ` + with \n\ + <problematic ids="id12" refid="id11"> + * + errors \n\ + <problematic ids="id14" refid="id13"> + `` + too + <definition> + <system_message backrefs="id2" ids="id1" level="2" line="1" source="test data" type="WARNING"> + <paragraph> + Inline interpreted text or phrase reference start-string without end-string. + <system_message backrefs="id4" ids="id3" level="2" line="1" source="test data" type="WARNING"> + <paragraph> + Inline emphasis start-string without end-string. + <system_message backrefs="id6" ids="id5" level="2" line="1" source="test data" type="WARNING"> + <paragraph> + Inline literal start-string without end-string. + <system_message backrefs="id8" ids="id7" level="2" line="1" source="test data" type="WARNING"> + <paragraph> + Inline strong start-string without end-string. + <system_message backrefs="id10" ids="id9" level="2" line="1" source="test data" type="WARNING"> + <paragraph> + Inline interpreted text or phrase reference start-string without end-string. + <system_message backrefs="id12" ids="id11" level="2" line="1" source="test data" type="WARNING"> + <paragraph> + Inline emphasis start-string without end-string. + <system_message backrefs="id14" ids="id13" level="2" line="1" source="test data" type="WARNING"> + <paragraph> + Inline literal start-string without end-string. + <paragraph> + Definition \n\ + <problematic ids="id16" refid="id15"> + ` + with \n\ + <problematic ids="id18" refid="id17"> + * + inline \n\ + <problematic ids="id20" refid="id19"> + `` + text \n\ + <problematic ids="id22" refid="id21"> + ** + markup errors. + <system_message backrefs="id16" ids="id15" level="2" line="2" source="test data" type="WARNING"> + <paragraph> + Inline interpreted text or phrase reference start-string without end-string. + <system_message backrefs="id18" ids="id17" level="2" line="2" source="test data" type="WARNING"> + <paragraph> + Inline emphasis start-string without end-string. + <system_message backrefs="id20" ids="id19" level="2" line="2" source="test data" type="WARNING"> + <paragraph> + Inline literal start-string without end-string. + <system_message backrefs="id22" ids="id21" level="2" line="2" source="test data" type="WARNING"> + <paragraph> + Inline strong start-string without end-string. +"""], +["""\ +Term : classifier one : classifier two + Definition +""", +"""\ +<document source="test data"> + <definition_list> + <definition_list_item> + <term> + Term + <classifier> + classifier one + <classifier> + classifier two + <definition> + <paragraph> + Definition +"""], +] + +if __name__ == '__main__': + import unittest + unittest.main(defaultTest='suite') |