#! /usr/bin/env python # $Id: test_docinfo.py 4564 2006-05-21 20:44:42Z wiemann $ # Author: David Goodger # Copyright: This module has been placed in the public domain. """ Tests for docutils.transforms.frontmatter.DocInfo. """ from .__init__ import DocutilsTestSupport from docutils.transforms.frontmatter import DocInfo from docutils.parsers.rst import Parser def suite(): parser = Parser() s = DocutilsTestSupport.TransformTestSuite(parser) s.generateTests(totest) return s totest = {} totest['bibliographic_field_lists'] = ((DocInfo,), [ ["""\ .. Bibliographic element extraction. :Abstract: There can only be one abstract. It is automatically moved to the end of the other bibliographic elements. :Author: Me :Version: 1 :Date: 2001-08-11 :Parameter i: integer """, """\ Me 1 2001-08-11 Parameter i integer Abstract <paragraph> There can only be one abstract. <paragraph> It is automatically moved to the end of the other bibliographic elements. <comment xml:space="preserve"> Bibliographic element extraction. """], ["""\ .. Bibliographic element extraction. :Abstract: Abstract 1. :Author: Me :Address: 123 My Street Example, EX :Contact: me@my.org :Version: 1 :Abstract: Abstract 2 (should generate a warning). :Date: 2001-08-11 :Parameter i: integer """, """\ <document source="test data"> <docinfo> <author> Me <address xml:space="preserve"> 123 My Street Example, EX <contact> <reference refuri="mailto:me@my.org"> me@my.org <version> 1 <field> <field_name> Abstract <field_body> <paragraph> Abstract 2 (should generate a warning). <system_message level="2" line="9" source="test data" type="WARNING"> <paragraph> There can only be one "Abstract" field. <date> 2001-08-11 <field> <field_name> Parameter i <field_body> <paragraph> integer <topic classes="abstract"> <title> Abstract <paragraph> Abstract 1. <comment xml:space="preserve"> Bibliographic element extraction. """], ["""\ :Author: - must be a paragraph :Status: a *simple* paragraph :Date: But only one paragraph. :Version: .. and not empty either """, """\ <document source="test data"> <docinfo> <field> <field_name> Author <field_body> <bullet_list bullet="-"> <list_item> <paragraph> must be a paragraph <system_message level="2" line="1" source="test data" type="WARNING"> <paragraph> Cannot extract bibliographic field "Author" containing anything other than a single paragraph. <status> a \n\ <emphasis> simple paragraph <field> <field_name> Date <field_body> <paragraph> But only one <paragraph> paragraph. <system_message level="2" line="3" source="test data" type="WARNING"> <paragraph> Cannot extract compound bibliographic field "Date". <field> <field_name> Version <field_body> <system_message level="2" line="6" source="test data" type="WARNING"> <paragraph> Cannot extract empty bibliographic field "Version". <comment xml:space="preserve"> and not empty either """], ["""\ :Authors: Me, Myself, **I** :Authors: PacMan; Ms. PacMan; PacMan, Jr. :Authors: Here There *Everywhere* :Authors: - First - Second - Third """, """\ <document source="test data"> <docinfo> <authors> <author> Me <author> Myself <author> I <authors> <author> PacMan <author> Ms. PacMan <author> PacMan, Jr. <authors> <author> Here <author> There <author> <emphasis> Everywhere <authors> <author> First <author> Second <author> Third """], ["""\ :Authors: Only One :Authors: One, Only; """, """\ <document source="test data"> <docinfo> <authors> <author> Only One <authors> <author> One, Only """], ["""\ :Authors: :Authors: 1. One 2. Two :Authors: - - :Authors: - One Two :Authors: - One Two """, """\ <document source="test data"> <docinfo> <field> <field_name> Authors <field_body> <system_message level="2" line="1" source="test data" type="WARNING"> <paragraph> Cannot extract empty bibliographic field "Authors". <field> <field_name> Authors <field_body> <enumerated_list enumtype="arabic" prefix="" suffix="."> <list_item> <paragraph> One <list_item> <paragraph> Two <system_message level="2" line="3" source="test data" type="WARNING"> <paragraph> Bibliographic field "Authors" incompatible with extraction: it must contain either a single paragraph (with authors separated by one of ";,"), multiple paragraphs (one per author), or a bullet list with one paragraph (one author) per item. <field> <field_name> Authors <field_body> <bullet_list bullet="-"> <list_item> <list_item> <system_message level="2" line="6" source="test data" type="WARNING"> <paragraph> Bibliographic field "Authors" incompatible with extraction: it must contain either a single paragraph (with authors separated by one of ";,"), multiple paragraphs (one per author), or a bullet list with one paragraph (one author) per item. <field> <field_name> Authors <field_body> <bullet_list bullet="-"> <list_item> <paragraph> One <paragraph> Two <system_message level="2" line="10" source="test data" type="WARNING"> <paragraph> Bibliographic field "Authors" incompatible with extraction: it must contain either a single paragraph (with authors separated by one of ";,"), multiple paragraphs (one per author), or a bullet list with one paragraph (one author) per item. <field> <field_name> Authors <field_body> <bullet_list bullet="-"> <list_item> <paragraph> One <paragraph> Two <system_message level="2" line="15" source="test data" type="WARNING"> <paragraph> Bibliographic field "Authors" incompatible with extraction: it must contain either a single paragraph (with authors separated by one of ";,"), multiple paragraphs (one per author), or a bullet list with one paragraph (one author) per item. """], ["""\ .. RCS keyword extraction. :Status: (some text) $""" + """RCSfile: test_docinfo.py,v $ (more text) :Date: (some text) $""" + """Date: 2002/10/08 01:34:23 $ (more text) :Date: (some text) $""" + """Date: 2005-03-26T16:21:28.693201Z $ (more text) :Version: (some text) $""" + """Revision: 1.1 $ (more text) """, """\ <document source="test data"> <docinfo> <status> (some text) test_docinfo.py (more text) <date> (some text) 2002-10-08 (more text) <date> (some text) 2005-03-26 (more text) <version> (some text) 1.1 (more text) <comment xml:space="preserve"> RCS keyword extraction. """], ]) if __name__ == '__main__': import unittest unittest.main(defaultTest='suite')