From 1f4ac8d12432df4379117d528aec390e89a3222b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laur=C3=A9line=20Gu=C3=A9rin?= Date: Mon, 24 Aug 2020 14:20:13 +0200 Subject: [PATCH] backoffice: truncate error details in errors_block (#42744) --- tests/test_backoffice_pages.py | 7 ++++++- wcs/admin/logged_errors.py | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/test_backoffice_pages.py b/tests/test_backoffice_pages.py index 382a4e3da..4d0653238 100644 --- a/tests/test_backoffice_pages.py +++ b/tests/test_backoffice_pages.py @@ -5755,10 +5755,15 @@ def test_backoffice_logged_errors(pub): resp = resp.form.submit('submit') assert LoggedError.count() == 2 + app = login(get_app(pub)) + resp = app.get('/backoffice/workflows/%s/' % workflow.id) + assert 'Failed to evaluate condition' in resp.text + assert "error NameError (name 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx…" in resp.text + # remove formdef FormDef.wipe() resp = resp2.click('Failed to evaluate condition') - assert not 'href="http://example.net/backoffice/management/test/' in resp.text + assert 'href="http://example.net/backoffice/management/test/' not in resp.text def test_backoffice_formdata_named_wscall(http_requests, pub): diff --git a/wcs/admin/logged_errors.py b/wcs/admin/logged_errors.py index 1a8d670e3..ee792f6f7 100644 --- a/wcs/admin/logged_errors.py +++ b/wcs/admin/logged_errors.py @@ -16,6 +16,7 @@ import re +from django.utils.text import Truncator from quixote import get_response, get_publisher, redirect from quixote.directory import Directory from quixote.html import TemplateIO, htmltext @@ -180,10 +181,12 @@ class LoggedErrorsDirectory(Directory): for error in errors[:3]: r += htmltext('
  • %s ') % (error.id, error.summary) if error.exception_class or error.exception_message: - r += htmltext(_('error %(class)s (%(message)s)')) % { + message = _('error %(class)s (%(message)s)') % { 'class': error.exception_class, 'message': error.exception_message, } + message = Truncator(message).chars(80, truncate='…') + r += htmltext(message) r += htmltext('
  • ') if len(errors) > 3: r += htmltext('
  • ...
  • ')