bpo-33256: Replace angle brackets around python object repr to display it in html (GH-6442)

This commit is contained in:
sblondon 2018-04-29 19:48:33 +02:00 committed by Serhiy Storchaka
parent 70af06cdc4
commit 7d68bfa826
4 changed files with 5 additions and 2 deletions

View file

@ -124,7 +124,7 @@ function calls leading up to the error, in the order they occurred.</p>'''
args, varargs, varkw, locals = inspect.getargvalues(frame) args, varargs, varkw, locals = inspect.getargvalues(frame)
call = '' call = ''
if func != '?': if func != '?':
call = 'in ' + strong(func) + \ call = 'in ' + strong(pydoc.html.escape(func)) + \
inspect.formatargvalues(args, varargs, varkw, locals, inspect.formatargvalues(args, varargs, varkw, locals,
formatvalue=lambda value: '=' + pydoc.html.repr(value)) formatvalue=lambda value: '=' + pydoc.html.repr(value))
@ -282,7 +282,7 @@ class Hook:
if self.display: if self.display:
if plain: if plain:
doc = doc.replace('&', '&amp;').replace('<', '&lt;') doc = pydoc.html.escape(doc)
self.file.write('<pre>' + doc + '</pre>\n') self.file.write('<pre>' + doc + '</pre>\n')
else: else:
self.file.write(doc + '\n') self.file.write(doc + '\n')

View file

@ -45,6 +45,7 @@ class TestCgitb(unittest.TestCase):
out = out.decode(sys.getfilesystemencoding()) out = out.decode(sys.getfilesystemencoding())
self.assertIn("ValueError", out) self.assertIn("ValueError", out)
self.assertIn("Hello World", out) self.assertIn("Hello World", out)
self.assertIn("<strong>&lt;module&gt;</strong>", out)
# By default we emit HTML markup. # By default we emit HTML markup.
self.assertIn('<p>', out) self.assertIn('<p>', out)
self.assertIn('</p>', out) self.assertIn('</p>', out)

View file

@ -158,6 +158,7 @@ Mike Bland
Martin Bless Martin Bless
Pablo Bleyer Pablo Bleyer
Erik van Blokland Erik van Blokland
Stéphane Blondon
Eric Blossom Eric Blossom
Sergey Bobrov Sergey Bobrov
Finn Bock Finn Bock

View file

@ -0,0 +1 @@
Fix display of ``<module>`` call in the html produced by ``cgitb.html()``. Patch by Stéphane Blondon.