def test_non_bmp3(self): """non-BMP characters 3""" unencoded = "".join(map(chr, range(256))) encoded = ( "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F" "%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F" "%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F" "0123456789%3A%3B%3C%3D%3E%3F%40" "ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60" "abcdefghijklmnopqrstuvwxyz%7B%7C%7D~" "%7F%80%81%82%83%84%85%86%87%88%89%8A%8B%8C%8D%8E%8F" "%90%91%92%93%94%95%96%97%98%99%9A%9B%9C%9D%9E%9F" "%A0%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%AF" "%B0%B1%B2%B3%B4%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF" "%C0%C1%C2%C3%C4%C5%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF" "%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF" "%E0%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF" "%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF" ) for part in (1, 2, 3, 15): enc_name = "iso-8859-%d" % part try: codecs.lookup(enc_name) except LookupError: warnings.warn("Not supported on this platform") continue self.assertEqual(encoded, iri.percent_encode(unencoded, encoding=enc_name), enc_name) self.assertEqual(unencoded, iri.percent_decode(encoded, encoding=enc_name), enc_name)
def test_percent_encode_template(self, count=count, unencoded=unencoded, encoded=encoded): if len(unencoded) > 10: test_title = unencoded[:11] + "..." else: test_title = unencoded self.assertEqual(encoded, iri.percent_encode(unencoded)) self.assertEqual(unencoded, iri.percent_decode(encoded))
def test_non_bmp2(self): '''non-BMP characters: u"\ud800\udc00\udbff\udffd"''' unencoded_in = u"\ud800\udc00\udbff\udffd" encoded = u"%F0%90%80%80%F4%8F%BF%BD" unencoded_out = u"\U00010000\U0010FFFD" self.assertEqual(encoded, iri.percent_encode(unencoded_in), "u'\ud800\udc00\udbff\udffd'") self.assertEqual(unencoded_out, iri.percent_decode(encoded), "u'\ud800\udc00\udbff\udffd'")
def test_non_bmp3(self): '''non-BMP characters 3''' unencoded = ''.join(map(chr, range(256))) encoded = '%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F' \ '%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F' \ '%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F' \ '0123456789%3A%3B%3C%3D%3E%3F%40' \ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60' \ 'abcdefghijklmnopqrstuvwxyz%7B%7C%7D~' \ '%7F%80%81%82%83%84%85%86%87%88%89%8A%8B%8C%8D%8E%8F' \ '%90%91%92%93%94%95%96%97%98%99%9A%9B%9C%9D%9E%9F' \ '%A0%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%AF' \ '%B0%B1%B2%B3%B4%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF' \ '%C0%C1%C2%C3%C4%C5%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF' \ '%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF' \ '%E0%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF' \ '%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF' for part in (1, 2, 3, 15): enc_name = 'iso-8859-%d' % part try: codecs.lookup(enc_name) except LookupError: warnings.warn('Not supported on this platform') continue self.assertEqual(encoded, iri.percent_encode(unencoded, encoding=enc_name), enc_name) self.assertEqual(unencoded, iri.percent_decode(encoded, encoding=enc_name), enc_name)
def test_non_bmp1(self): '''non-BMP characters: u""\U00010000\U0010FFFD""''' unencoded = u'\U00010000\U0010FFFD' encoded = u'%F0%90%80%80%F4%8F%BF%BD' self.assertEqual(encoded, iri.percent_encode(unencoded), "u'\U00010000\U0010FFFD'") self.assertEqual(unencoded, iri.percent_decode(encoded), "u'\U00010000\U0010FFFD'")
def test_non_bmp2(self): '''non-BMP characters: u"\ud800\udc00\udbff\udffd"''' unencoded_in = u'\ud800\udc00\udbff\udffd' encoded = u'%F0%90%80%80%F4%8F%BF%BD' unencoded_out = u'\U00010000\U0010FFFD' self.assertEqual(encoded, iri.percent_encode(unencoded_in), "u'\ud800\udc00\udbff\udffd'") self.assertEqual(unencoded_out, iri.percent_decode(encoded), "u'\ud800\udc00\udbff\udffd'")
def test_percent_encode_template(self, count=count, unencoded=unencoded, encoded=encoded): if len(unencoded) > 10: test_title = unencoded[:11] + '...' else: test_title = unencoded self.assertEqual(encoded, iri.percent_encode(unencoded)) self.assertEqual(unencoded, iri.percent_decode(encoded))
def test_non_bmp1(self): '''non-BMP characters: u""\U00010000\U0010FFFD""''' unencoded = u"\U00010000\U0010FFFD" encoded = u"%F0%90%80%80%F4%8F%BF%BD" self.assertEqual(encoded, iri.percent_encode(unencoded), "u'\U00010000\U0010FFFD'") self.assertEqual(unencoded, iri.percent_decode(encoded), "u'\U00010000\U0010FFFD'")