فهرست منبع

Fix #21185: Added tests for unescape_entities.

Also fixed a py3 incompatibility.
Thanks to brutasse for the report.
Baptiste Mispelon 11 سال پیش
والد
کامیت
3754f4ad41
2فایلهای تغییر یافته به همراه15 افزوده شده و 2 حذف شده
  1. 2 2
      django/utils/text.py
  2. 13 0
      tests/utils_tests/test_text.py

+ 2 - 2
django/utils/text.py

@@ -365,12 +365,12 @@ def _replace_entity(match):
                 c = int(text[1:], 16)
             else:
                 c = int(text)
-            return unichr(c)
+            return six.unichr(c)
         except ValueError:
             return match.group(0)
     else:
         try:
-            return unichr(html_entities.name2codepoint[text])
+            return six.unichr(html_entities.name2codepoint[text])
         except (ValueError, KeyError):
             return match.group(0)
 

+ 13 - 0
tests/utils_tests/test_text.py

@@ -106,3 +106,16 @@ class TestUtilsText(SimpleTestCase):
         )
         for value, output in items:
             self.assertEqual(text.slugify(value), output)
+
+    def test_unescape_entities(self):
+        items = [
+            ('', ''),
+            ('foo', 'foo'),
+            ('&', '&'),
+            ('&', '&'),
+            ('&', '&'),
+            ('foo & bar', 'foo & bar'),
+            ('foo & bar', 'foo & bar'),
+        ]
+        for value, output in items:
+            self.assertEqual(text.unescape_entities(value), output)