test_escape.py 1.0 KB

123456789101112131415161718192021222324252627282930
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. from markupsafe import Markup
  4. @pytest.mark.parametrize(
  5. ("value", "expect"),
  6. (
  7. # empty
  8. (u"", u""),
  9. # ascii
  10. (u"abcd&><'\"efgh", u"abcd&amp;&gt;&lt;&#39;&#34;efgh"),
  11. (u"&><'\"efgh", u"&amp;&gt;&lt;&#39;&#34;efgh"),
  12. (u"abcd&><'\"", u"abcd&amp;&gt;&lt;&#39;&#34;"),
  13. # 2 byte
  14. (u"こんにちは&><'\"こんばんは", u"こんにちは&amp;&gt;&lt;&#39;&#34;こんばんは"),
  15. (u"&><'\"こんばんは", u"&amp;&gt;&lt;&#39;&#34;こんばんは"),
  16. (u"こんにちは&><'\"", u"こんにちは&amp;&gt;&lt;&#39;&#34;"),
  17. # 4 byte
  18. (
  19. u"\U0001F363\U0001F362&><'\"\U0001F37A xyz",
  20. u"\U0001F363\U0001F362&amp;&gt;&lt;&#39;&#34;\U0001F37A xyz",
  21. ),
  22. (u"&><'\"\U0001F37A xyz", u"&amp;&gt;&lt;&#39;&#34;\U0001F37A xyz"),
  23. (u"\U0001F363\U0001F362&><'\"", u"\U0001F363\U0001F362&amp;&gt;&lt;&#39;&#34;"),
  24. ),
  25. )
  26. def test_escape(escape, value, expect):
  27. assert escape(value) == Markup(expect)