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)