diff options
author | wiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2006-01-09 20:44:25 +0000 |
---|---|---|
committer | wiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2006-01-09 20:44:25 +0000 |
commit | d77fdfef70e08114f57cbef5d91707df8717ea9f (patch) | |
tree | 49444e3486c0c333cb7b33dfa721296c08ee4ece /test/test_transforms/test_footnotes.py | |
parent | 53cd16ca6ca5f638cbe5956988e88f9339e355cf (diff) | |
parent | 3993c4097756e9885bcfbd07cb1cc1e4e95e50e4 (diff) | |
download | docutils-0.4.tar.gz |
Release 0.4: tagging released revisiondocutils-0.4
git-svn-id: http://svn.code.sf.net/p/docutils/code/tags/docutils-0.4@4268 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'test/test_transforms/test_footnotes.py')
-rwxr-xr-x | test/test_transforms/test_footnotes.py | 545 |
1 files changed, 545 insertions, 0 deletions
diff --git a/test/test_transforms/test_footnotes.py b/test/test_transforms/test_footnotes.py new file mode 100755 index 000000000..86cbd2110 --- /dev/null +++ b/test/test_transforms/test_footnotes.py @@ -0,0 +1,545 @@ +#! /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.references.Footnotes. +""" + +from __init__ import DocutilsTestSupport +from docutils.transforms.references import Footnotes +from docutils.parsers.rst import Parser + + +def suite(): + parser = Parser() + s = DocutilsTestSupport.TransformTestSuite(parser) + s.generateTests(totest) + return s + +totest = {} + +totest['footnotes'] = ((Footnotes,), [ +["""\ +[#autolabel]_ + +.. [#autolabel] text +""", +"""\ +<document source="test data"> + <paragraph> + <footnote_reference auto="1" ids="id1" refid="autolabel"> + 1 + <footnote auto="1" backrefs="id1" ids="autolabel" names="autolabel"> + <label> + 1 + <paragraph> + text +"""], +["""\ +autonumber: [#]_ + +.. [#] text +""", +"""\ +<document source="test data"> + <paragraph> + autonumber: \n\ + <footnote_reference auto="1" ids="id1" refid="id2"> + 1 + <footnote auto="1" backrefs="id1" ids="id2" names="1"> + <label> + 1 + <paragraph> + text +"""], +["""\ +[#]_ is the first auto-numbered footnote reference. +[#]_ is the second auto-numbered footnote reference. + +.. [#] Auto-numbered footnote 1. +.. [#] Auto-numbered footnote 2. +.. [#] Auto-numbered footnote 3. + +[#]_ is the third auto-numbered footnote reference. +""", +"""\ +<document source="test data"> + <paragraph> + <footnote_reference auto="1" ids="id1" refid="id3"> + 1 + is the first auto-numbered footnote reference. + <footnote_reference auto="1" ids="id2" refid="id4"> + 2 + is the second auto-numbered footnote reference. + <footnote auto="1" backrefs="id1" ids="id3" names="1"> + <label> + 1 + <paragraph> + Auto-numbered footnote 1. + <footnote auto="1" backrefs="id2" ids="id4" names="2"> + <label> + 2 + <paragraph> + Auto-numbered footnote 2. + <footnote auto="1" backrefs="id6" ids="id5" names="3"> + <label> + 3 + <paragraph> + Auto-numbered footnote 3. + <paragraph> + <footnote_reference auto="1" ids="id6" refid="id5"> + 3 + is the third auto-numbered footnote reference. +"""], +["""\ +[#third]_ is a reference to the third auto-numbered footnote. + +.. [#first] First auto-numbered footnote. +.. [#second] Second auto-numbered footnote. +.. [#third] Third auto-numbered footnote. + +[#second]_ is a reference to the second auto-numbered footnote. +[#first]_ is a reference to the first auto-numbered footnote. +[#third]_ is another reference to the third auto-numbered footnote. + +Here are some internal cross-references to the implicit targets +generated by the footnotes: first_, second_, third_. +""", +"""\ +<document source="test data"> + <paragraph> + <footnote_reference auto="1" ids="id1" refid="third"> + 3 + is a reference to the third auto-numbered footnote. + <footnote auto="1" backrefs="id3" ids="first" names="first"> + <label> + 1 + <paragraph> + First auto-numbered footnote. + <footnote auto="1" backrefs="id2" ids="second" names="second"> + <label> + 2 + <paragraph> + Second auto-numbered footnote. + <footnote auto="1" backrefs="id1 id4" ids="third" names="third"> + <label> + 3 + <paragraph> + Third auto-numbered footnote. + <paragraph> + <footnote_reference auto="1" ids="id2" refid="second"> + 2 + is a reference to the second auto-numbered footnote. + <footnote_reference auto="1" ids="id3" refid="first"> + 1 + is a reference to the first auto-numbered footnote. + <footnote_reference auto="1" ids="id4" refid="third"> + 3 + is another reference to the third auto-numbered footnote. + <paragraph> + Here are some internal cross-references to the implicit targets + generated by the footnotes: \n\ + <reference name="first" refname="first"> + first + , \n\ + <reference name="second" refname="second"> + second + , \n\ + <reference name="third" refname="third"> + third + . +"""], +["""\ +Mixed anonymous and labelled auto-numbered footnotes: + +[#four]_ should be 4, [#]_ should be 1, +[#]_ should be 3, [#]_ is one too many, +[#two]_ should be 2, and [#six]_ doesn't exist. + +.. [#] Auto-numbered footnote 1. +.. [#two] Auto-numbered footnote 2. +.. [#] Auto-numbered footnote 3. +.. [#four] Auto-numbered footnote 4. +.. [#five] Auto-numbered footnote 5. +.. [#five] Auto-numbered footnote 5 again (duplicate). +""", +"""\ +<document source="test data"> + <paragraph> + Mixed anonymous and labelled auto-numbered footnotes: + <paragraph> + <footnote_reference auto="1" ids="id1" refid="four"> + 4 + should be 4, \n\ + <footnote_reference auto="1" ids="id2" refid="id7"> + 1 + should be 1, + <footnote_reference auto="1" ids="id3" refid="id8"> + 3 + should be 3, \n\ + <problematic ids="id11 id4" refid="id10"> + [#]_ + is one too many, + <footnote_reference auto="1" ids="id5" refid="two"> + 2 + should be 2, and \n\ + <footnote_reference auto="1" ids="id6" refname="six"> + doesn't exist. + <footnote auto="1" backrefs="id2" ids="id7" names="1"> + <label> + 1 + <paragraph> + Auto-numbered footnote 1. + <footnote auto="1" backrefs="id5" ids="two" names="two"> + <label> + 2 + <paragraph> + Auto-numbered footnote 2. + <footnote auto="1" backrefs="id3" ids="id8" names="3"> + <label> + 3 + <paragraph> + Auto-numbered footnote 3. + <footnote auto="1" backrefs="id1" ids="four" names="four"> + <label> + 4 + <paragraph> + Auto-numbered footnote 4. + <footnote auto="1" dupnames="five" ids="five"> + <label> + 5 + <paragraph> + Auto-numbered footnote 5. + <footnote auto="1" dupnames="five" ids="id9"> + <label> + 6 + <system_message backrefs="id9" level="2" line="12" source="test data" type="WARNING"> + <paragraph> + Duplicate explicit target name: "five". + <paragraph> + Auto-numbered footnote 5 again (duplicate). + <system_message backrefs="id11" ids="id10" level="3" line="3" source="test data" type="ERROR"> + <paragraph> + Too many autonumbered footnote references: only 2 corresponding footnotes available. +"""], +["""\ +Mixed auto-numbered and manual footnotes: + +.. [1] manually numbered +.. [#] auto-numbered +.. [#label] autonumber-labeled +""", +"""\ +<document source="test data"> + <paragraph> + Mixed auto-numbered and manual footnotes: + <footnote ids="id1" names="1"> + <label> + 1 + <paragraph> + manually numbered + <footnote auto="1" ids="id2" names="2"> + <label> + 2 + <paragraph> + auto-numbered + <footnote auto="1" ids="label" names="label"> + <label> + 3 + <paragraph> + autonumber-labeled +"""], +["""\ +A labeled autonumbered footnote referece: [#footnote]_. + +An unlabeled autonumbered footnote referece: [#]_. + +.. [#] Unlabeled autonumbered footnote. +.. [#footnote] Labeled autonumbered footnote. + Note that the footnotes are not in the same + order as the references. +""", +"""\ +<document source="test data"> + <paragraph> + A labeled autonumbered footnote referece: \n\ + <footnote_reference auto="1" ids="id1" refid="footnote"> + 2 + . + <paragraph> + An unlabeled autonumbered footnote referece: \n\ + <footnote_reference auto="1" ids="id2" refid="id3"> + 1 + . + <footnote auto="1" backrefs="id2" ids="id3" names="1"> + <label> + 1 + <paragraph> + Unlabeled autonumbered footnote. + <footnote auto="1" backrefs="id1" ids="footnote" names="footnote"> + <label> + 2 + <paragraph> + Labeled autonumbered footnote. + Note that the footnotes are not in the same + order as the references. +"""], +["""\ +Mixed manually-numbered, anonymous auto-numbered, +and labelled auto-numbered footnotes: + +[#four]_ should be 4, [#]_ should be 2, +[1]_ is 1, [3]_ is 3, +[#]_ should be 6, [#]_ is one too many, +[#five]_ should be 5, and [#eight]_ doesn't exist. + +.. [1] Manually-numbered footnote 1. +.. [#] Auto-numbered footnote 2. +.. [#four] Auto-numbered footnote 4. +.. [3] Manually-numbered footnote 3 +.. [#five] Auto-numbered footnote 5. +.. [#] Auto-numbered footnote 6. +.. [#five] Auto-numbered footnote 5 again (duplicate). +""", +"""\ +<document source="test data"> + <paragraph> + Mixed manually-numbered, anonymous auto-numbered, + and labelled auto-numbered footnotes: + <paragraph> + <footnote_reference auto="1" ids="id1" refid="four"> + 4 + should be 4, \n\ + <footnote_reference auto="1" ids="id2" refid="id10"> + 2 + should be 2, + <footnote_reference ids="id3" refid="id9"> + 1 + is 1, \n\ + <footnote_reference ids="id4" refid="id11"> + 3 + is 3, + <footnote_reference auto="1" ids="id5" refid="id12"> + 6 + should be 6, \n\ + <problematic ids="id15 id6" refid="id14"> + [#]_ + is one too many, + <footnote_reference auto="1" ids="id7" refname="five"> + should be 5, and \n\ + <footnote_reference auto="1" ids="id8" refname="eight"> + doesn't exist. + <footnote backrefs="id3" ids="id9" names="1"> + <label> + 1 + <paragraph> + Manually-numbered footnote 1. + <footnote auto="1" backrefs="id2" ids="id10" names="2"> + <label> + 2 + <paragraph> + Auto-numbered footnote 2. + <footnote auto="1" backrefs="id1" ids="four" names="four"> + <label> + 4 + <paragraph> + Auto-numbered footnote 4. + <footnote backrefs="id4" ids="id11" names="3"> + <label> + 3 + <paragraph> + Manually-numbered footnote 3 + <footnote auto="1" dupnames="five" ids="five"> + <label> + 5 + <paragraph> + Auto-numbered footnote 5. + <footnote auto="1" backrefs="id5" ids="id12" names="6"> + <label> + 6 + <paragraph> + Auto-numbered footnote 6. + <footnote auto="1" dupnames="five" ids="id13"> + <label> + 7 + <system_message backrefs="id13" level="2" line="15" source="test data" type="WARNING"> + <paragraph> + Duplicate explicit target name: "five". + <paragraph> + Auto-numbered footnote 5 again (duplicate). + <system_message backrefs="id15" ids="id14" level="3" line="4" source="test data" type="ERROR"> + <paragraph> + Too many autonumbered footnote references: only 2 corresponding footnotes available. +"""], +["""\ +Referencing a footnote by symbol [*]_. + +.. [*] This is an auto-symbol footnote. +""", +"""\ +<document source="test data"> + <paragraph> + Referencing a footnote by symbol \n\ + <footnote_reference auto="*" ids="id1" refid="id2"> + * + . + <footnote auto="*" backrefs="id1" ids="id2"> + <label> + * + <paragraph> + This is an auto-symbol footnote. +"""], +["""\ +A sequence of symbol footnote references: +[*]_ [*]_ [*]_ [*]_ [*]_ [*]_ [*]_ [*]_ [*]_ [*]_ [*]_ [*]_. + +.. [*] Auto-symbol footnote 1. +.. [*] Auto-symbol footnote 2. +.. [*] Auto-symbol footnote 3. +.. [*] Auto-symbol footnote 4. +.. [*] Auto-symbol footnote 5. +.. [*] Auto-symbol footnote 6. +.. [*] Auto-symbol footnote 7. +.. [*] Auto-symbol footnote 8. +.. [*] Auto-symbol footnote 9. +.. [*] Auto-symbol footnote 10. +.. [*] Auto-symbol footnote 11. +.. [*] Auto-symbol footnote 12. +""", +u"""\ +<document source="test data"> + <paragraph> + A sequence of symbol footnote references: + <footnote_reference auto="*" ids="id1" refid="id13"> + * + \n\ + <footnote_reference auto="*" ids="id2" refid="id14"> + \u2020 + \n\ + <footnote_reference auto="*" ids="id3" refid="id15"> + \u2021 + \n\ + <footnote_reference auto="*" ids="id4" refid="id16"> + \u00A7 + \n\ + <footnote_reference auto="*" ids="id5" refid="id17"> + \u00B6 + \n\ + <footnote_reference auto="*" ids="id6" refid="id18"> + # + \n\ + <footnote_reference auto="*" ids="id7" refid="id19"> + \u2660 + \n\ + <footnote_reference auto="*" ids="id8" refid="id20"> + \u2665 + \n\ + <footnote_reference auto="*" ids="id9" refid="id21"> + \u2666 + \n\ + <footnote_reference auto="*" ids="id10" refid="id22"> + \u2663 + \n\ + <footnote_reference auto="*" ids="id11" refid="id23"> + ** + \n\ + <footnote_reference auto="*" ids="id12" refid="id24"> + \u2020\u2020 + . + <footnote auto="*" backrefs="id1" ids="id13"> + <label> + * + <paragraph> + Auto-symbol footnote 1. + <footnote auto="*" backrefs="id2" ids="id14"> + <label> + \u2020 + <paragraph> + Auto-symbol footnote 2. + <footnote auto="*" backrefs="id3" ids="id15"> + <label> + \u2021 + <paragraph> + Auto-symbol footnote 3. + <footnote auto="*" backrefs="id4" ids="id16"> + <label> + \u00A7 + <paragraph> + Auto-symbol footnote 4. + <footnote auto="*" backrefs="id5" ids="id17"> + <label> + \u00B6 + <paragraph> + Auto-symbol footnote 5. + <footnote auto="*" backrefs="id6" ids="id18"> + <label> + # + <paragraph> + Auto-symbol footnote 6. + <footnote auto="*" backrefs="id7" ids="id19"> + <label> + \u2660 + <paragraph> + Auto-symbol footnote 7. + <footnote auto="*" backrefs="id8" ids="id20"> + <label> + \u2665 + <paragraph> + Auto-symbol footnote 8. + <footnote auto="*" backrefs="id9" ids="id21"> + <label> + \u2666 + <paragraph> + Auto-symbol footnote 9. + <footnote auto="*" backrefs="id10" ids="id22"> + <label> + \u2663 + <paragraph> + Auto-symbol footnote 10. + <footnote auto="*" backrefs="id11" ids="id23"> + <label> + ** + <paragraph> + Auto-symbol footnote 11. + <footnote auto="*" backrefs="id12" ids="id24"> + <label> + \u2020\u2020 + <paragraph> + Auto-symbol footnote 12. +"""], +["""\ +Duplicate manual footnote labels: + +.. [1] Footnote. + +.. [1] Footnote. +""", +"""\ +<document source="test data"> + <paragraph> + Duplicate manual footnote labels: + <footnote dupnames="1" ids="id1"> + <label> + 1 + <paragraph> + Footnote. + <footnote dupnames="1" ids="id2"> + <label> + 1 + <system_message backrefs="id2" level="2" line="5" source="test data" type="WARNING"> + <paragraph> + Duplicate explicit target name: "1". + <paragraph> + Footnote. +"""], +]) + + +if __name__ == '__main__': + import unittest + unittest.main(defaultTest='suite') |