Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
#! /usr/bin/env python
# $Id: test_substitutions.py 6351 2010-07-03 14:19:09Z gbrandl $
# Author: David Goodger
# 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
""",
"""\
The \n\
symbol is deservedly scary-looking.
"""],
["""\
Here's an |unknown| substitution.
""",
"""\
Here's an \n\
|unknown|
substitution.
Undefined substitution referenced: "unknown".
"""],
[u"""\
Substitutions support case differences:
.. |eacute| replace:: \u00E9
.. |Eacute| replace:: \u00C9
|Eacute|\\t\\ |eacute|, and even |EACUTE|.
""",
u"""\
Substitutions support case differences:
\u00E9
\u00C9
\u00C9
t
\u00E9
, and even \n\
\u00C9
.
"""],
[u"""\
Indirect substitution definitions with multiple references:
|substitute| my coke for gin
|substitute| you for my mum
at least I'll get my washing done
.. |substitute| replace:: |replace|
.. |replace| replace:: swap
""",
u"""\
Indirect substitution definitions with multiple references:
swap
my coke for gin
swap
you for my mum
at least I'll get my washing done
swap
swap
"""],
["""\
.. |l| unicode:: U+00AB .. left chevron
.. |r| unicode:: U+00BB .. right chevron
.. |.| replace:: |l|\ ``.``\ |r|
.. Delete either of the following lines, and there is no error.
Regular expression |.| will match any character
.. Note:: Note that |.| matches *exactly* one character
""",
u"""\
\xab
\xbb
\xab
.
\xbb
Delete either of the following lines, and there is no error.
Regular expression \n\
\xab
.
\xbb
will match any character
Note that \n\
\xab
.
\xbb
matches \n\
exactly
one character
"""],
["""\
.. |sub| replace:: |sub|
""",
"""\
Circular substitution definition detected:
.. |sub| replace:: |sub|
"""],
["""\
.. |sub| replace:: |indirect1|
.. |indirect1| replace:: |indirect2|
.. |indirect2| replace:: |Sub|
""",
"""\
Circular substitution definition detected:
.. |sub| replace:: |indirect1|
Circular substitution definition detected:
.. |indirect1| replace:: |indirect2|
Circular substitution definition detected:
.. |indirect2| replace:: |Sub|
"""],
["""\
.. |indirect1| replace:: |indirect2|
.. |indirect2| replace:: |Sub|
.. |sub| replace:: |indirect1|
Use |sub| and |indirect1| and |sub| again (and |sub| one more time).
""",
"""\
Circular substitution definition detected:
.. |indirect1| replace:: |indirect2|
Circular substitution definition detected:
.. |indirect2| replace:: |Sub|
Circular substitution definition detected:
.. |sub| replace:: |indirect1|
Use \n\
|Sub|
and \n\
|indirect1|
and \n\
|sub|
again (and \n\
|sub|
one more time).
Circular substitution definition referenced: "indirect1".
Circular substitution definition referenced: "sub".
Circular substitution definition referenced: "sub".
Circular substitution definition referenced: "Sub".
"""],
])
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"""\
Insert an em-dash (
\u2014
), a copyright symbol (
\u00a9
), a non-breaking
space (
\u00a0
), a backwards-not-equals (
=
\u20e5
), and a captial omega (
\u03a9
).
\u2014
\u00a9
\u00a0
=
\u20e5
\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"""\
Testing comments and extra text.
Copyright \n\
\u00a9
2003, \n\
BogusMegaCorp
\u2122
.
\u00a9
BogusMegaCorp
\u2122
"""],
["""\
Insert an em-dash |---| automatically trimming whitespace.
Some substitutions |TM| only need |rarrow| trimming on one side.
.. |---| unicode:: U+02014
:trim:
.. |TM| unicode:: U+02122
:ltrim:
.. |rarrow| unicode:: U+2192
:rtrim:
""",
u"""\
Insert an em-dash
\u2014
automatically trimming whitespace.
Some substitutions
\u2122
only need \n\
\u2192
trimming on one side.
\u2014
\u2122
\u2192
"""],
["""\
Substitution definition with an illegal element:
.. |target| replace:: _`target`
Make sure this substitution definition is not registered: |target|
""",
"""\
Substitution definition with an illegal element:
Substitution definition contains illegal element:
target
.. |target| replace:: _`target`
Make sure this substitution definition is not registered: \n\
|target|
Undefined substitution referenced: "target".
"""],
])
if __name__ == '__main__':
import unittest
unittest.main(defaultTest='suite')