summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2013-05-21 17:39:57 +0100
committerArmin Ronacher <armin.ronacher@active-4.com>2013-05-21 17:39:57 +0100
commit94e9fcad7b310867421f6a3047e179ab4bb02d49 (patch)
tree9017d7ca8e092fb67222b7709ed579e736033035
parentda0309741522e9ce261a64609eb6c1479898f998 (diff)
downloadmarkupsafe-94e9fcad7b310867421f6a3047e179ab4bb02d49.tar.gz
Fixed interpolation on tuples
-rw-r--r--markupsafe/__init__.py2
-rw-r--r--markupsafe/tests.py15
2 files changed, 16 insertions, 1 deletions
diff --git a/markupsafe/__init__.py b/markupsafe/__init__.py
index 6a8dc5e..ea67117 100644
--- a/markupsafe/__init__.py
+++ b/markupsafe/__init__.py
@@ -92,7 +92,7 @@ class Markup(text_type):
def __mod__(self, arg):
if isinstance(arg, tuple):
- arg = tuple(imap(_MarkupEscapeHelper, arg, self.escape))
+ arg = tuple(_MarkupEscapeHelper(x, self.escape) for x in arg)
else:
arg = _MarkupEscapeHelper(arg, self.escape)
return self.__class__(text_type.__mod__(self, arg))
diff --git a/markupsafe/tests.py b/markupsafe/tests.py
index 12cd69b..a4c3571 100644
--- a/markupsafe/tests.py
+++ b/markupsafe/tests.py
@@ -44,6 +44,21 @@ class MarkupTestCase(unittest.TestCase):
assert Markup('<strong>%s</strong>') % Foo() == \
'<strong><em>awesome</em></strong>'
+ def test_tuple_interpol(self):
+ self.assertEqual(Markup('<em>%s:%s</em>') % (
+ '<foo>',
+ '<bar>',
+ ), Markup(u'<em>&lt;foo&gt;:&lt;bar&gt;</em>'))
+
+ def test_dict_interpol(self):
+ self.assertEqual(Markup('<em>%(foo)s</em>') % {
+ 'foo': '<foo>',
+ }, Markup(u'<em>&lt;foo&gt;</em>'))
+ self.assertEqual(unicode(Markup('<em>%(foo)s:%(bar)s</em>') % {
+ 'foo': '<foo>',
+ 'bar': '<bar>',
+ }), unicode(Markup(u'<em>&lt;foo&gt;:&lt;bar&gt;</em>')))
+
def test_escaping(self):
# escaping and unescaping
assert escape('"<>&\'') == '&#34;&lt;&gt;&amp;&#39;'