summaryrefslogtreecommitdiff
path: root/test/test_readers/test_pep
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_readers/test_pep')
-rw-r--r--test/test_readers/test_pep/__init__.py14
-rwxr-xr-xtest/test_readers/test_pep/test_inline_markup.py140
-rwxr-xr-xtest/test_readers/test_pep/test_rfc2822.py291
3 files changed, 445 insertions, 0 deletions
diff --git a/test/test_readers/test_pep/__init__.py b/test/test_readers/test_pep/__init__.py
new file mode 100644
index 000000000..46fc50e06
--- /dev/null
+++ b/test/test_readers/test_pep/__init__.py
@@ -0,0 +1,14 @@
+import os
+import os.path
+import sys
+
+sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
+prev = ''
+while sys.path[0] != prev:
+ try:
+ import DocutilsTestSupport
+ break
+ except ImportError:
+ prev = sys.path[0]
+ sys.path[0] = os.path.dirname(prev)
+sys.path.pop(0)
diff --git a/test/test_readers/test_pep/test_inline_markup.py b/test/test_readers/test_pep/test_inline_markup.py
new file mode 100755
index 000000000..4965af3d1
--- /dev/null
+++ b/test/test_readers/test_pep/test_inline_markup.py
@@ -0,0 +1,140 @@
+#! /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 inline markup in PEPs (readers/pep.py).
+"""
+
+from __init__ import DocutilsTestSupport
+
+
+def suite():
+ s = DocutilsTestSupport.PEPParserTestSuite()
+ s.generateTests(totest)
+ return s
+
+
+totest = {}
+
+totest['standalone_references'] = [
+["""\
+See PEP 287 (pep-0287.txt),
+and RFC 2822 (which obsoletes RFC822 and RFC-733).
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ See \n\
+ <reference refuri="http://www.python.org/peps/pep-0287.html">
+ PEP 287
+ (
+ <reference refuri="http://www.python.org/peps/pep-0287.html">
+ pep-0287.txt
+ ),
+ and \n\
+ <reference refuri="http://www.faqs.org/rfcs/rfc2822.html">
+ RFC 2822
+ (which obsoletes \n\
+ <reference refuri="http://www.faqs.org/rfcs/rfc822.html">
+ RFC822
+ and \n\
+ <reference refuri="http://www.faqs.org/rfcs/rfc733.html">
+ RFC-733
+ ).
+"""],
+["""\
+References split across lines:
+
+PEP
+287
+
+RFC
+2822
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ References split across lines:
+ <paragraph>
+ <reference refuri="http://www.python.org/peps/pep-0287.html">
+ PEP
+ 287
+ <paragraph>
+ <reference refuri="http://www.faqs.org/rfcs/rfc2822.html">
+ RFC
+ 2822
+"""],
+["""\
+Test PEP-specific implicit references before a URL:
+
+PEP 287 (http://www.python.org/peps/pep-0287.html), RFC 2822.
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Test PEP-specific implicit references before a URL:
+ <paragraph>
+ <reference refuri="http://www.python.org/peps/pep-0287.html">
+ PEP 287
+ (
+ <reference refuri="http://www.python.org/peps/pep-0287.html">
+ http://www.python.org/peps/pep-0287.html
+ ), \n\
+ <reference refuri="http://www.faqs.org/rfcs/rfc2822.html">
+ RFC 2822
+ .
+"""],
+]
+
+totest['miscellaneous'] = [
+["""\
+For *completeness*, _`let's` ``test`` **other** forms_
+|of| `inline markup` [*]_.
+
+.. [*] See http://docutils.sf.net/docs/ref/rst/restructuredtext.html.
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ For \n\
+ <emphasis>
+ completeness
+ , \n\
+ <target ids="let-s" names="let's">
+ let's
+ \n\
+ <literal>
+ test
+ \n\
+ <strong>
+ other
+ \n\
+ <reference name="forms" refname="forms">
+ forms
+ \n\
+ <substitution_reference refname="of">
+ of
+ \n\
+ <title_reference>
+ inline markup
+ \n\
+ <footnote_reference auto="*" ids="id1">
+ .
+ <footnote auto="*" ids="id2">
+ <paragraph>
+ See \n\
+ <reference refuri="http://docutils.sf.net/docs/ref/rst/restructuredtext.html">
+ http://docutils.sf.net/docs/ref/rst/restructuredtext.html
+ .
+"""],
+]
+
+
+if __name__ == '__main__':
+ import unittest
+ unittest.main(defaultTest='suite')
diff --git a/test/test_readers/test_pep/test_rfc2822.py b/test/test_readers/test_pep/test_rfc2822.py
new file mode 100755
index 000000000..82fa27543
--- /dev/null
+++ b/test/test_readers/test_pep/test_rfc2822.py
@@ -0,0 +1,291 @@
+#! /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 RFC-2822 headers in PEPs (readers/pep.py).
+"""
+
+from __init__ import DocutilsTestSupport
+
+def suite():
+ s = DocutilsTestSupport.PEPParserTestSuite()
+ s.generateTests(totest)
+ return s
+
+totest = {}
+
+totest['rfc2822'] = [
+["""\
+Author: Me
+Version: 1
+Date: 2002-04-23
+""",
+"""\
+<document source="test data">
+ <field_list classes="rfc2822">
+ <field>
+ <field_name>
+ Author
+ <field_body>
+ <paragraph>
+ Me
+ <field>
+ <field_name>
+ Version
+ <field_body>
+ <paragraph>
+ 1
+ <field>
+ <field_name>
+ Date
+ <field_body>
+ <paragraph>
+ 2002-04-23
+"""],
+["""\
+
+
+Author: Me
+Version: 1
+Date: 2002-04-23
+
+.. Leading blank lines don't affect RFC-2822 header parsing.
+""",
+"""\
+<document source="test data">
+ <field_list classes="rfc2822">
+ <field>
+ <field_name>
+ Author
+ <field_body>
+ <paragraph>
+ Me
+ <field>
+ <field_name>
+ Version
+ <field_body>
+ <paragraph>
+ 1
+ <field>
+ <field_name>
+ Date
+ <field_body>
+ <paragraph>
+ 2002-04-23
+ <comment xml:space="preserve">
+ Leading blank lines don't affect RFC-2822 header parsing.
+"""],
+["""\
+.. A comment should prevent RFC-2822 header parsing.
+
+Author: Me
+Version: 1
+Date: 2002-04-23
+""",
+"""\
+<document source="test data">
+ <comment xml:space="preserve">
+ A comment should prevent RFC-2822 header parsing.
+ <paragraph>
+ Author: Me
+ Version: 1
+ Date: 2002-04-23
+"""],
+["""\
+Author: Me
+
+Version: 1
+Date: 2002-04-23
+""",
+"""\
+<document source="test data">
+ <field_list classes="rfc2822">
+ <field>
+ <field_name>
+ Author
+ <field_body>
+ <paragraph>
+ Me
+ <paragraph>
+ Version: 1
+ Date: 2002-04-23
+"""],
+["""\
+field:
+empty item above, no blank line
+""",
+"""\
+<document source="test data">
+ <field_list classes="rfc2822">
+ <field>
+ <field_name>
+ field
+ <field_body>
+ <system_message level="2" line="2" source="test data" type="WARNING">
+ <paragraph>
+ RFC2822-style field list ends without a blank line; unexpected unindent.
+ <paragraph>
+ empty item above, no blank line
+"""],
+["""\
+Author:
+ Me
+Version:
+ 1
+Date:
+ 2002-04-23
+""",
+"""\
+<document source="test data">
+ <field_list classes="rfc2822">
+ <field>
+ <field_name>
+ Author
+ <field_body>
+ <paragraph>
+ Me
+ <field>
+ <field_name>
+ Version
+ <field_body>
+ <paragraph>
+ 1
+ <field>
+ <field_name>
+ Date
+ <field_body>
+ <paragraph>
+ 2002-04-23
+"""],
+["""\
+Authors: Me,
+ Myself,
+ and I
+Version: 1
+ or so
+Date: 2002-04-23
+ (Tuesday)
+""",
+"""\
+<document source="test data">
+ <field_list classes="rfc2822">
+ <field>
+ <field_name>
+ Authors
+ <field_body>
+ <paragraph>
+ Me,
+ Myself,
+ and I
+ <field>
+ <field_name>
+ Version
+ <field_body>
+ <paragraph>
+ 1
+ or so
+ <field>
+ <field_name>
+ Date
+ <field_body>
+ <paragraph>
+ 2002-04-23
+ (Tuesday)
+"""],
+["""\
+Authors: Me,
+ Myself,
+ and I
+Version: 1
+ or so
+Date: 2002-04-23
+ (Tuesday)
+""",
+"""\
+<document source="test data">
+ <field_list classes="rfc2822">
+ <field>
+ <field_name>
+ Authors
+ <field_body>
+ <paragraph>
+ Me,
+ Myself,
+ and I
+ <field>
+ <field_name>
+ Version
+ <field_body>
+ <paragraph>
+ 1
+ or so
+ <field>
+ <field_name>
+ Date
+ <field_body>
+ <paragraph>
+ 2002-04-23
+ (Tuesday)
+"""],
+["""\
+Authors: - Me
+ - Myself
+ - I
+Version:
+""",
+"""\
+<document source="test data">
+ <field_list classes="rfc2822">
+ <field>
+ <field_name>
+ Authors
+ <field_body>
+ <bullet_list bullet="-">
+ <list_item>
+ <paragraph>
+ Me
+ <list_item>
+ <paragraph>
+ Myself
+ <list_item>
+ <paragraph>
+ I
+ <field>
+ <field_name>
+ Version
+ <field_body>
+"""],
+["""\
+Authors: Me
+
+ Myself and I
+Version:
+""",
+"""\
+<document source="test data">
+ <field_list classes="rfc2822">
+ <field>
+ <field_name>
+ Authors
+ <field_body>
+ <paragraph>
+ Me
+ <block_quote>
+ <paragraph>
+ Myself and I
+ <system_message level="2" line="4" source="test data" type="WARNING">
+ <paragraph>
+ Block quote ends without a blank line; unexpected unindent.
+ <paragraph>
+ Version:
+"""],
+]
+
+if __name__ == '__main__':
+ import unittest
+ unittest.main(defaultTest='suite')