From e1d01001ab55997d202e8dc040a0ef6678807e3f Mon Sep 17 00:00:00 2001 From: Christian Ulrich Date: Mon, 17 May 2021 15:19:40 +0200 Subject: [PATCH] remove escaping of variable values as it is handled by jinja2 since at least 2.10 --- secretary.py | 14 ++------------ test_secretary.py | 21 --------------------- 2 files changed, 2 insertions(+), 33 deletions(-) diff --git a/secretary.py b/secretary.py index ffad3d5..bc828e2 100644 --- a/secretary.py +++ b/secretary.py @@ -29,7 +29,6 @@ import re import sys import logging import zipfile -import jinja2 from os import path from mimetypes import guess_type, guess_extension from uuid import uuid4 @@ -135,27 +134,18 @@ class Renderer(object): self.environment = environment else: self.environment = Environment(undefined=UndefinedSilently, - autoescape=True, - finalize=self.finalize_value) + autoescape=True) # Register filters self.environment.filters['pad'] = pad_string self.environment.filters['markdown'] = self.markdown_filter self.environment.filters['image'] = self.image_filter - self.environment.globals['SafeValue'] = jinja2.Markup + self.environment.globals['SafeValue'] = Markup self.media_path = kwargs.pop('media_path', '') self.media_callback = self.fs_loader self._compile_tags_expressions() - @jinja2.evalcontextfilter - def finalize_value(self, value, *args): - """Escapes variables values.""" - if isinstance(value, Markup): - return value - - return Markup(self.get_escaped_var_value(value)) - def media_loader(self, callback): """This sets the the media loader. A user defined function which loads media. The function should take a template value, optionals diff --git a/test_secretary.py b/test_secretary.py index d3883e9..5be7722 100644 --- a/test_secretary.py +++ b/test_secretary.py @@ -63,24 +63,3 @@ class RenderTestCase(TestCase): def test_create_text_span_node(self): assert self.engine.create_text_span_node(self.document, 'text').toxml() == 'text' - - -class EscapingVariablesValues(TestCase): - """ - Test encoding of line feed and tab variables valuess - """ - def test_encode_linefeed_char(self): - xml = 'This\nLF' - expected = 'ThisLF' - assert (Renderer.get_escaped_var_value(xml) == expected) - - def test_encode_linefeed_char(self): - xml = 'This\tTab char' - expected = 'ThisTab char' - assert (Renderer.get_escaped_var_value(xml) == expected) - - def test_escape_xml_reserved_chars(self): - ''' Should also escape minor and mayor signs ''' - xml = '1 is > than 0 & -1 is <' - expected = '1 is > than 0 & -1 is <' - assert (Renderer.get_escaped_var_value(xml) == expected)