diff options
Diffstat (limited to 'test/test_transforms/test_substitutions.py')
| -rwxr-xr-x | test/test_transforms/test_substitutions.py | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/test/test_transforms/test_substitutions.py b/test/test_transforms/test_substitutions.py new file mode 100755 index 000000000..33a33b754 --- /dev/null +++ b/test/test_transforms/test_substitutions.py @@ -0,0 +1,174 @@ +#! /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.Substitutions. +""" + +from __init__ import DocutilsTestSupport +from docutils.transforms.references import Substitutions +from docutils.parsers.rst import Parser + + +def suite(): + parser = Parser() + s = DocutilsTestSupport.TransformTestSuite(parser) + s.generateTests(totest) + return s + +totest = {} + +totest['substitutions'] = ((Substitutions,), [ +["""\ +The |biohazard| symbol is deservedly scary-looking. + +.. |biohazard| image:: biohazard.png +""", +"""\ +<document source="test data"> + <paragraph> + The \n\ + <image alt="biohazard" uri="biohazard.png"> + symbol is deservedly scary-looking. + <substitution_definition names="biohazard"> + <image alt="biohazard" uri="biohazard.png"> +"""], +["""\ +Here's an |unknown| substitution. +""", +"""\ +<document source="test data"> + <paragraph> + Here's an \n\ + <problematic ids="id2" refid="id1"> + |unknown| + substitution. + <system_message backrefs="id2" ids="id1" level="3" line="1" source="test data" type="ERROR"> + <paragraph> + Undefined substitution referenced: "unknown". +"""], +[u"""\ +Substitutions support case differences: + +.. |eacute| replace:: \u00E9 +.. |Eacute| replace:: \u00C9 + +|Eacute|\\t\\ |eacute|, and even |EACUTE|. +""", +u"""\ +<document source="test data"> + <paragraph> + Substitutions support case differences: + <substitution_definition names="eacute"> + \u00E9 + <substitution_definition names="Eacute"> + \u00C9 + <paragraph> + \u00C9 + t + \u00E9 + , and even \n\ + \u00C9 + . +"""], +]) + +totest['unicode'] = ((Substitutions,), [ +["""\ +Insert an em-dash (|mdash|), a copyright symbol (|copy|), a non-breaking +space (|nbsp|), a backwards-not-equals (|bne|), and a captial omega (|Omega|). + +.. |mdash| unicode:: 0x02014 +.. |copy| unicode:: \\u00A9 +.. |nbsp| unicode::   +.. |bne| unicode:: U0003D U020E5 +.. |Omega| unicode:: U+003A9 +""", +u"""\ +<document source="test data"> + <paragraph> + Insert an em-dash ( + \u2014 + ), a copyright symbol ( + \u00a9 + ), a non-breaking + space ( + \u00a0 + ), a backwards-not-equals ( + = + \u20e5 + ), and a captial omega ( + \u03a9 + ). + <substitution_definition names="mdash"> + \u2014 + <substitution_definition names="copy"> + \u00a9 + <substitution_definition names="nbsp"> + \u00a0 + <substitution_definition names="bne"> + = + \u20e5 + <substitution_definition names="Omega"> + \u03a9 +"""], +[""" +Testing comments and extra text. + +Copyright |copy| 2003, |BogusMegaCorp (TM)|. + +.. |copy| unicode:: 0xA9 .. copyright sign +.. |BogusMegaCorp (TM)| unicode:: BogusMegaCorp U+2122 + .. with trademark sign +""", +u"""\ +<document source="test data"> + <paragraph> + Testing comments and extra text. + <paragraph> + Copyright \n\ + \u00a9 + 2003, \n\ + BogusMegaCorp + \u2122 + . + <substitution_definition names="copy"> + \u00a9 + <substitution_definition names="BogusMegaCorp (TM)"> + BogusMegaCorp + \u2122 +"""], +["""\ +Insert an em-dash |---| automatically trimming whitespace. +Some substitutions |TM| only need trimming on one side. + +.. |---| unicode:: U+02014 + :trim: +.. |TM| unicode:: U+02122 + :ltrim: +""", +u"""\ +<document source="test data"> + <paragraph> + Insert an em-dash + \u2014 + automatically trimming whitespace. + Some substitutions + \u2122 + only need trimming on one side. + <substitution_definition ltrim="1" names="---" rtrim="1"> + \u2014 + <substitution_definition ltrim="1" names="TM"> + \u2122 +"""], +]) + + +if __name__ == '__main__': + import unittest + unittest.main(defaultTest='suite') |
