Skip to content

Commit

Permalink
cms_form: marshaller escape test + use html.escape
Browse files Browse the repository at this point in the history
werkzeug.utils.escape will be deprecated.

See pallets/werkzeug@5fd1386
  • Loading branch information
simahawk committed Aug 23, 2021
1 parent 0ba0139 commit 9274be6
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
4 changes: 2 additions & 2 deletions cms_form/marshallers.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright 2018 Simone Orsi
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).

import werkzeug.utils
import html


def marshal_request_values(values):
Expand Down Expand Up @@ -48,7 +48,7 @@ def marshal_request_values(values):
def marshal_esc(values, orig_key, orig_value):
"""Transform `foo:esc` inputs to escaped value."""
k = orig_key[: -len(":esc")]
v = werkzeug.utils.escape(orig_value)
v = html.escape(orig_value)
return k, v


Expand Down
11 changes: 11 additions & 0 deletions cms_form/tests/test_marshallers.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,14 @@ def test_marshal_dict(self):
self.assertEqual(marshalled["a"], "1")
self.assertDictEqual(marshalled["b"], {"x": "1", "y": "2", "z": "3"})
self.assertEqual(marshalled["c"], "3")

def test_marshal_esc(self):
data = MultiDict(
[
("a:esc", "<span>I'm bad</span>"),
("b", "<span>I'm bad but I don't care</span>"),
]
)
marshalled = marshallers.marshal_request_values(data)
self.assertEqual(marshalled["a"], "&lt;span&gt;I&#x27;m bad&lt;/span&gt;")
self.assertEqual(marshalled["b"], "<span>I'm bad but I don't care</span>")

0 comments on commit 9274be6

Please sign in to comment.