#!/usr/bin/env python3 def func(string, eslice, replace): print(f"STRING: '{string}' SLICE: '{string[eslice[0]:eslice[1]]}'") # debug encoding = 'utf-8' b = bytearray(string, encoding) b[eslice[0]:eslice[1]] = replace.encode(encoding) return b.decode(encoding) assert func('a test', (2,6), 'abcd') == 'a abcd' assert func('b тест', (2,6), 'абвгде') == 'b абвгде' assert func('a qwer a', (2,6), 'abcdef') == 'a abcdef a' assert func('c qwer абвг c', (2,6), 'фываолдж') == 'c фываолдж абвг c' assert func('⣿ abcd тест ⣿', (2,6), 'олдж') == '⣿ олдж тест ⣿'
Если указать encoding = ‘cp1251’, то проходятся все ассерты, кроме последнего
Как изменить функцию так, чтобы проходились все ассерты?