| import pytest | |
| from markupsafe import Markup | |
| @pytest.mark.parametrize( | |
| ("value", "expect"), | |
| ( | |
| # empty | |
| ("", ""), | |
| # ascii | |
| ("abcd&><'\"efgh", "abcd&><'"efgh"), | |
| ("&><'\"efgh", "&><'"efgh"), | |
| ("abcd&><'\"", "abcd&><'""), | |
| # 2 byte | |
| ("こんにちは&><'\"こんばんは", "こんにちは&><'"こんばんは"), | |
| ("&><'\"こんばんは", "&><'"こんばんは"), | |
| ("こんにちは&><'\"", "こんにちは&><'""), | |
| # 4 byte | |
| ( | |
| "\U0001F363\U0001F362&><'\"\U0001F37A xyz", | |
| "\U0001F363\U0001F362&><'"\U0001F37A xyz", | |
| ), | |
| ("&><'\"\U0001F37A xyz", "&><'"\U0001F37A xyz"), | |
| ("\U0001F363\U0001F362&><'\"", "\U0001F363\U0001F362&><'""), | |
| ), | |
| ) | |
| def test_escape(escape, value, expect): | |
| assert escape(value) == Markup(expect) |