summaryrefslogtreecommitdiff
path: root/test/test_transforms/test_docinfo.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_transforms/test_docinfo.py')
-rwxr-xr-xtest/test_transforms/test_docinfo.py334
1 files changed, 334 insertions, 0 deletions
diff --git a/test/test_transforms/test_docinfo.py b/test/test_transforms/test_docinfo.py
new file mode 100755
index 000000000..994d034ea
--- /dev/null
+++ b/test/test_transforms/test_docinfo.py
@@ -0,0 +1,334 @@
+#! /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.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
+""",
+"""\
+<document source="test data">
+ <docinfo>
+ <author>
+ Me
+ <version>
+ 1
+ <date>
+ 2001-08-11
+ <field>
+ <field_name>
+ Parameter i
+ <field_body>
+ <paragraph>
+ integer
+ <topic classes="abstract">
+ <title>
+ 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')