summaryrefslogtreecommitdiff
path: root/test/test_parsers/test_rst/test_option_lists.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_parsers/test_rst/test_option_lists.py')
-rwxr-xr-xtest/test_parsers/test_rst/test_option_lists.py756
1 files changed, 756 insertions, 0 deletions
diff --git a/test/test_parsers/test_rst/test_option_lists.py b/test/test_parsers/test_rst/test_option_lists.py
new file mode 100755
index 000000000..a5afc498b
--- /dev/null
+++ b/test/test_parsers/test_rst/test_option_lists.py
@@ -0,0 +1,756 @@
+#! /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['option_lists'] = [
+["""\
+Short options:
+
+-a option -a
+
+-b file option -b
+
+-c name option -c
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Short options:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -a
+ <description>
+ <paragraph>
+ option -a
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -b
+ <option_argument delimiter=" ">
+ file
+ <description>
+ <paragraph>
+ option -b
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -c
+ <option_argument delimiter=" ">
+ name
+ <description>
+ <paragraph>
+ option -c
+"""],
+["""\
+Long options:
+
+--aaaa option --aaaa
+--bbbb=file option --bbbb
+--cccc name option --cccc
+--d-e-f-g option --d-e-f-g
+--h_i_j_k option --h_i_j_k
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Long options:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --aaaa
+ <description>
+ <paragraph>
+ option --aaaa
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --bbbb
+ <option_argument delimiter="=">
+ file
+ <description>
+ <paragraph>
+ option --bbbb
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --cccc
+ <option_argument delimiter=" ">
+ name
+ <description>
+ <paragraph>
+ option --cccc
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --d-e-f-g
+ <description>
+ <paragraph>
+ option --d-e-f-g
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --h_i_j_k
+ <description>
+ <paragraph>
+ option --h_i_j_k
+"""],
+["""\
+Old GNU-style options:
+
++a option +a
+
++b file option +b
+
++c name option +c
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Old GNU-style options:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ +a
+ <description>
+ <paragraph>
+ option +a
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ +b
+ <option_argument delimiter=" ">
+ file
+ <description>
+ <paragraph>
+ option +b
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ +c
+ <option_argument delimiter=" ">
+ name
+ <description>
+ <paragraph>
+ option +c
+"""],
+["""\
+VMS/DOS-style options:
+
+/A option /A
+/B file option /B
+/CCC option /CCC
+/DDD string option /DDD
+/EEE=int option /EEE
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ VMS/DOS-style options:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ /A
+ <description>
+ <paragraph>
+ option /A
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ /B
+ <option_argument delimiter=" ">
+ file
+ <description>
+ <paragraph>
+ option /B
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ /CCC
+ <description>
+ <paragraph>
+ option /CCC
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ /DDD
+ <option_argument delimiter=" ">
+ string
+ <description>
+ <paragraph>
+ option /DDD
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ /EEE
+ <option_argument delimiter="=">
+ int
+ <description>
+ <paragraph>
+ option /EEE
+"""],
+["""\
+Mixed short, long, and VMS/DOS options:
+
+-a option -a
+--bbbb=file option -bbbb
+/C option /C
+--dddd name option --dddd
+-e string option -e
+/F file option /F
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Mixed short, long, and VMS/DOS options:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -a
+ <description>
+ <paragraph>
+ option -a
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --bbbb
+ <option_argument delimiter="=">
+ file
+ <description>
+ <paragraph>
+ option -bbbb
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ /C
+ <description>
+ <paragraph>
+ option /C
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --dddd
+ <option_argument delimiter=" ">
+ name
+ <description>
+ <paragraph>
+ option --dddd
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -e
+ <option_argument delimiter=" ">
+ string
+ <description>
+ <paragraph>
+ option -e
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ /F
+ <option_argument delimiter=" ">
+ file
+ <description>
+ <paragraph>
+ option /F
+"""],
+["""\
+Aliased options:
+
+-a, --aaaa, /A option -a, --aaaa, /A
+-b file, --bbbb=file, /B file option -b, --bbbb, /B
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Aliased options:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -a
+ <option>
+ <option_string>
+ --aaaa
+ <option>
+ <option_string>
+ /A
+ <description>
+ <paragraph>
+ option -a, --aaaa, /A
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -b
+ <option_argument delimiter=" ">
+ file
+ <option>
+ <option_string>
+ --bbbb
+ <option_argument delimiter="=">
+ file
+ <option>
+ <option_string>
+ /B
+ <option_argument delimiter=" ">
+ file
+ <description>
+ <paragraph>
+ option -b, --bbbb, /B
+"""],
+["""\
+Multiple lines in descriptions, aligned:
+
+-a option -a, line 1
+ line 2
+-b file option -b, line 1
+ line 2
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Multiple lines in descriptions, aligned:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -a
+ <description>
+ <paragraph>
+ option -a, line 1
+ line 2
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -b
+ <option_argument delimiter=" ">
+ file
+ <description>
+ <paragraph>
+ option -b, line 1
+ line 2
+"""],
+["""\
+Multiple lines in descriptions, not aligned:
+
+-a option -a, line 1
+ line 2
+-b file option -b, line 1
+ line 2
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Multiple lines in descriptions, not aligned:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -a
+ <description>
+ <paragraph>
+ option -a, line 1
+ line 2
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -b
+ <option_argument delimiter=" ">
+ file
+ <description>
+ <paragraph>
+ option -b, line 1
+ line 2
+"""],
+["""\
+Descriptions begin on next line:
+
+-a
+ option -a, line 1
+ line 2
+-b file
+ option -b, line 1
+ line 2
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Descriptions begin on next line:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -a
+ <description>
+ <paragraph>
+ option -a, line 1
+ line 2
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -b
+ <option_argument delimiter=" ">
+ file
+ <description>
+ <paragraph>
+ option -b, line 1
+ line 2
+"""],
+["""\
+Multiple body elements in descriptions:
+
+-a option -a, para 1
+
+ para 2
+-b file
+ option -b, para 1
+
+ para 2
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Multiple body elements in descriptions:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -a
+ <description>
+ <paragraph>
+ option -a, para 1
+ <paragraph>
+ para 2
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -b
+ <option_argument delimiter=" ">
+ file
+ <description>
+ <paragraph>
+ option -b, para 1
+ <paragraph>
+ para 2
+"""],
+["""\
+--option
+empty item above, no blank line
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ --option
+ empty item above, no blank line
+"""],
+["""\
+An option list using equals:
+
+--long1=arg1 Description 1
+--long2=arg2 Description 2
+
+An option list using spaces:
+
+--long1 arg1 Description 1
+--long2 arg2 Description 2
+
+An option list using mixed delimiters:
+
+--long1=arg1 Description 1
+--long2 arg2 Description 2
+
+An option list using mixed delimiters in one line:
+
+--long1=arg1, --long2 arg2 Description
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ An option list using equals:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --long1
+ <option_argument delimiter="=">
+ arg1
+ <description>
+ <paragraph>
+ Description 1
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --long2
+ <option_argument delimiter="=">
+ arg2
+ <description>
+ <paragraph>
+ Description 2
+ <paragraph>
+ An option list using spaces:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --long1
+ <option_argument delimiter=" ">
+ arg1
+ <description>
+ <paragraph>
+ Description 1
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --long2
+ <option_argument delimiter=" ">
+ arg2
+ <description>
+ <paragraph>
+ Description 2
+ <paragraph>
+ An option list using mixed delimiters:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --long1
+ <option_argument delimiter="=">
+ arg1
+ <description>
+ <paragraph>
+ Description 1
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --long2
+ <option_argument delimiter=" ">
+ arg2
+ <description>
+ <paragraph>
+ Description 2
+ <paragraph>
+ An option list using mixed delimiters in one line:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --long1
+ <option_argument delimiter="=">
+ arg1
+ <option>
+ <option_string>
+ --long2
+ <option_argument delimiter=" ">
+ arg2
+ <description>
+ <paragraph>
+ Description
+"""],
+["""\
+Some edge cases:
+
+--option=arg arg too many arguments
+
+--option=arg,arg not supported (yet?)
+
+--option=arg=arg too many arguments
+
+--option arg arg too many arguments
+
+-a letter arg2 too many arguments
+
+/A letter arg2 too many arguments
+
+--option= argument missing
+
+--=argument option missing
+
+-- everything missing
+
+- this should be a bullet list item
+
+These next ones should be simple paragraphs:
+
+-1
+
+--option
+
+--1
+
+-1 and this one too.
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Some edge cases:
+ <paragraph>
+ --option=arg arg too many arguments
+ <paragraph>
+ --option=arg,arg not supported (yet?)
+ <paragraph>
+ --option=arg=arg too many arguments
+ <paragraph>
+ --option arg arg too many arguments
+ <paragraph>
+ -a letter arg2 too many arguments
+ <paragraph>
+ /A letter arg2 too many arguments
+ <paragraph>
+ --option= argument missing
+ <paragraph>
+ --=argument option missing
+ <paragraph>
+ -- everything missing
+ <bullet_list bullet="-">
+ <list_item>
+ <paragraph>
+ this should be a bullet list item
+ <paragraph>
+ These next ones should be simple paragraphs:
+ <paragraph>
+ -1
+ <paragraph>
+ --option
+ <paragraph>
+ --1
+ <paragraph>
+ -1 and this one too.
+"""],
+["""\
+Complex optargs:
+
+--source-url=<URL> Use the supplied <URL> verbatim.
+--output-encoding=<name[:handler]>, -o<name[:handler]>
+ Specify the text encoding for output.
+-f <[path]filename> Send output to file.
+-d <src dest> Use diff from <src> to <dest>.
+--bogus=<x y z> Bogus 3D coordinates.
+""",
+"""\
+<document source="test data">
+ <paragraph>
+ Complex optargs:
+ <option_list>
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --source-url
+ <option_argument delimiter="=">
+ <URL>
+ <description>
+ <paragraph>
+ Use the supplied <URL> verbatim.
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --output-encoding
+ <option_argument delimiter="=">
+ <name[:handler]>
+ <option>
+ <option_string>
+ -o
+ <option_argument delimiter="">
+ <name[:handler]>
+ <description>
+ <paragraph>
+ Specify the text encoding for output.
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -f
+ <option_argument delimiter=" ">
+ <[path]filename>
+ <description>
+ <paragraph>
+ Send output to file.
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ -d
+ <option_argument delimiter=" ">
+ <src dest>
+ <description>
+ <paragraph>
+ Use diff from <src> to <dest>.
+ <option_list_item>
+ <option_group>
+ <option>
+ <option_string>
+ --bogus
+ <option_argument delimiter="=">
+ <x y z>
+ <description>
+ <paragraph>
+ Bogus 3D coordinates.
+"""],
+]
+
+
+if __name__ == '__main__':
+ import unittest
+ unittest.main(defaultTest='suite')