def test_utf7_tofrom_utf8_bug(self): def _assert_decu7(input, expected): assert runicode.str_decode_utf_7(input, len(input), None) == (expected, len(input)) _assert_decu7('+-', u'+') _assert_decu7('+-+-', u'++') _assert_decu7('+-+AOQ-', u'+\xe4') _assert_decu7('+AOQ-', u'\xe4') _assert_decu7('+AOQ-', u'\xe4') _assert_decu7('+AOQ- ', u'\xe4 ') _assert_decu7(' +AOQ-', u' \xe4') _assert_decu7(' +AOQ- ', u' \xe4 ') _assert_decu7('+AOQ-+AOQ-', u'\xe4\xe4') s_utf7 = 'Die M+AOQ-nner +AOQ-rgen sich!' s_utf8 = u'Die Männer ärgen sich!' s_utf8_esc = u'Die M\xe4nner \xe4rgen sich!' _assert_decu7(s_utf7, s_utf8_esc) _assert_decu7(s_utf7, s_utf8) assert runicode.unicode_encode_utf_7(s_utf8_esc, len(s_utf8_esc), None) == s_utf7 assert runicode.unicode_encode_utf_7(s_utf8, len(s_utf8_esc), None) == s_utf7
def test_utf7_bugs(self): u = u'A\u2262\u0391.' assert runicode.unicode_encode_utf_7(u, len(u), None) == 'A+ImIDkQ.'