Module doctestcompare
source code
lxml-based doctest output comparison.
Note: normally, you should just import the lxml.usedoctest and
lxml.html.usedoctest modules from within a doctest, instead of this
one:
>>> import lxml.usedoctest # for XML output
>>> import lxml.html.usedoctest # for HTML output
To use this module directly, you must call lxmldoctest.install(),
which will cause doctest to use this in all subsequent calls.
This changes the way output is checked and comparisons are made for
XML or HTML-like content.
XML or HTML content is noticed because the example starts with <
(it's HTML if it starts with <html). You can also use the
PARSE_HTML and PARSE_XML flags to force parsing.
Some rough wildcard-like things are allowed. Whitespace is generally
ignored (except in attributes). In text (attributes and text in the
body) you can use ... as a wildcard. In an example it also
matches any trailing tags in the element, though it does not match
leading tags. You may create a tag <any> or include an any
attribute in the tag. An any tag matches any tag, while the
attribute matches any and all attributes.
When a match fails, the reformatted example and gotten text is
displayed (indented), and a rough diff-like output is given. Anything
marked with + is in the output but wasn't supposed to be, and
similarly - means its in the example but wasn't in the output.
You can disable parsing on one line with # doctest:+NOPARSE_MARKUP
|
|
|
|
|
|
|
|
|
temp_install(html=False,
del_module=None)
Use this inside a doctest to enable this checker for this
doctest only. |
source code
|
|
|
|
|
_IS_PYTHON_3 = False
|
|
PARSE_HTML = 1024
|
|
PARSE_XML = 2048
|
|
NOPARSE_MARKUP = 4096
|
|
_html_parser = <lxml.etree.HTMLParser object>
|
|
_repr_re = re.compile(r'^<[^ >] + ( at| object) ')
|
|
_norm_whitespace_re = re.compile(r'[ \t\n] [ \t\n] + ')
|
|
__test__ = { ' basic ' : ' \n >>> temp_install()\n >>> print ...
|
|
__package__ = ' lxml '
|
Install doctestcompare for all future doctests.
If html is true, then by default the HTML parser will be used;
otherwise the XML parser is used.
|
Use this inside a doctest to enable this checker for this
doctest only.
If html is true, then by default the HTML parser will be used;
otherwise the XML parser is used.
|
__test__
- Value:
{ ' basic ' : '''
>>> temp_install()
>>> print """<xml a="1" b="2">stuff</xml>"""
<xml b="2" a="1">...</xml>
>>> print """<xml xmlns="http://example.com"><tag attr="bar" /
></xml>"""
<xml xmlns="...">
<tag attr="..." />
...
|
|