from testutils import assert_raises try: b" \xff".decode("ascii") except UnicodeDecodeError as e: assert e.start == 3 assert e.end == 4 else: assert False, "should have thrown UnicodeDecodeError" assert_raises(UnicodeEncodeError, "ΒΏcomo estás?".encode, "ascii") def round_trip(s, encoding="utf-8"): encoded = s.encode(encoding) decoded = encoded.decode(encoding) assert s == decoded round_trip("πŸ‘Ίβ™¦ πšΕžΔ‘Ζ’ β˜†β˜") round_trip("☒🐣 α–‡π“€π•ŠΡ‚β“Ÿπ•π•₯卄σ𝔫 β™¬πŸ‘£") round_trip("πŸ’€πŸ‘Œ ק𝔂tβ„β“žπ“· οΌ“ πŸ”₯πŸ‘€")