aumentar UnicodeEncodeError e UnicodeDecodeError manualmente (para fins de teste)

Ao escrever testes de unidade Python, pode ser útil sintetizar as exceções UnicodeEncodeErrore UnicodeDecodeError.

Embora essas exceções sejam funções especiais e recebam alguns argumentos especiais que não são encontrados facilmente na documentação do Python (além da documentação da API C )

Documentação útil para UnicodeEncodeError

argumentos:

  • encoding name(bytestring, ou seja b"utf-8") pode ser qualquer coisa.
  • subject object(bytestring, ou seja b"") pode realmente estar em branco, não faz diferença
  • start of the byte (int) o índice com a posição do início do byte supostamente não recocnizado
  • end of the byte (int) o índice com a posição do final do byte supostamente não recocnizado
  • exception message(bytestring, ou seja:) "oops it's buggy"pode ser qualquer coisa

exemplo de uso:

UnicodeDecodeError('hitchhiker', b"", 42, 43, 'the universe and everything else')

Documentação útil para UnicodeEncodeError

Muito semelhante ao, UnicodeDecodeErrormas o objeto sujeito deve
ser um objeto Unicode

argumentos:

  • encoding name(bytestring, ou seja b"utf-8") pode ser qualquer coisa.
  • subject object(string Unicode, ou seja b"") pode realmente estar em branco, não faz diferença
  • start of the byte (int) o índice com a posição do início do byte supostamente não recocnizado
  • end of the byte (int) o índice com a posição do final do byte supostamente não recocnizado
  • exception message(bytestring, ou seja:) "oops it's buggy"pode ser qualquer coisa

exemplo de uso:

UnicodeEncodeError('hitchhiker', u"", 42, 43, 'the universe and everything else')