test_escape.py 1.0 KB

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