diff options
-rw-r--r-- | markupsafe/__init__.py | 2 | ||||
-rw-r--r-- | markupsafe/tests.py | 15 |
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><foo>:<bar></em>')) + + def test_dict_interpol(self): + self.assertEqual(Markup('<em>%(foo)s</em>') % { + 'foo': '<foo>', + }, Markup(u'<em><foo></em>')) + self.assertEqual(unicode(Markup('<em>%(foo)s:%(bar)s</em>') % { + 'foo': '<foo>', + 'bar': '<bar>', + }), unicode(Markup(u'<em><foo>:<bar></em>'))) + def test_escaping(self): # escaping and unescaping assert escape('"<>&\'') == '"<>&'' |