예제 #1
0
 def test_charmap_encodeerror(self):
     def errorhandler(errors, enc, msg, t, startingpos,
                      endingpos):
         assert t[startingpos:endingpos] == u'\t\n  \r'
         return None, ' ', endingpos
     s = u'aa\t\n  \raa'
     mapping = {u'a': 'a'}
     r = runicode.unicode_encode_charmap(s, len(s), None, errorhandler,
                                         mapping=mapping)
     assert r == 'aa aa'
예제 #2
0
 def test_charmap_encodeerror(self):
     def errorhandler(errors, enc, msg, t, startingpos,
                      endingpos):
         assert t[startingpos:endingpos] == u'\t\n  \r'
         return None, ' ', endingpos
     s = u'aa\t\n  \raa'
     mapping = {u'a': 'a'}
     r = runicode.unicode_encode_charmap(s, len(s), None, errorhandler,
                                         mapping=mapping)
     assert r == 'aa aa'
예제 #3
0
def charmap_encode(space, uni, errors="strict", w_mapping=None):
    if errors is None:
        errors = 'strict'
    if space.is_none(w_mapping):
        mapping = None
    else:
        mapping = Charmap_Encode(space, w_mapping)

    state = space.fromcache(CodecState)
    result = runicode.unicode_encode_charmap(uni, len(uni), errors,
                                             state.encode_error_handler,
                                             mapping)
    return space.newtuple([space.newbytes(result), space.newint(len(uni))])
예제 #4
0
def charmap_encode(space, uni, errors="strict", w_mapping=None):
    if errors is None:
        errors = 'strict'
    if space.is_none(w_mapping):
        mapping = None
    else:
        mapping = Charmap_Encode(space, w_mapping)

    state = space.fromcache(CodecState)
    result = runicode.unicode_encode_charmap(
        uni, len(uni), errors,
        state.encode_error_handler, mapping)
    return space.newtuple([space.wrap(result), space.wrap(len(uni))])