[Lxml-checkins] r43960 - lxml/branch/html/src/lxml
ianb at codespeak.net
ianb at codespeak.net
Fri Jun 1 07:09:12 CEST 2007
Author: ianb
Date: Fri Jun 1 07:09:12 2007
New Revision: 43960
Modified:
lxml/branch/html/src/lxml/doctestcompare.py
Log:
avoid treating a single repr() of an object like markup
Modified: lxml/branch/html/src/lxml/doctestcompare.py
==============================================================================
--- lxml/branch/html/src/lxml/doctestcompare.py (original)
+++ lxml/branch/html/src/lxml/doctestcompare.py Fri Jun 1 07:09:12 2007
@@ -31,6 +31,9 @@
import doctest
import cgi
+__all__ = ['PARSE_HTML', 'PARSE_XML', 'LXMLOutputChecker',
+ 'LHTMLOutputChecker', 'install', 'temp_install']
+
PARSE_HTML = doctest.register_optionflag('PARSE_HTML')
PARSE_XML = doctest.register_optionflag('PARSE_XML')
@@ -42,6 +45,9 @@
else:
return v.strip()
+# We use this to distinguish repr()s from elements:
+_repr_re = re.compile(r'^<[^>]+ (at|object) ')
+
class LXMLOutputChecker(OutputChecker):
empty_tags = (
@@ -81,11 +87,16 @@
elif (want.strip().lower().startswith('<html')
and got.strip().startswith('<html')):
parser = HTML
- elif (want.strip().startswith('<')
- and got.strip().startswith('<')):
+ elif (self._looks_like_markup(want)
+ and self._looks_like_markup(got)):
parser = self.get_default_parser()
return parser
+ def _looks_like_markup(self, s):
+ s = s.strip()
+ return (s.startswith('<')
+ and not _repr_re.search(s))
+
def compare_docs(self, want, got):
if want.tag != got.tag and want.tag != 'any':
return False
More information about the lxml-checkins
mailing list