/ / Como posso testar conteúdo alternativo do corpo no objeto EmailMultiAlternatives usando o sistema de teste django? - django, email, assertions, django-testing

Como posso testar o conteúdo alternativo do corpo no objeto EmailMultiAlternatives usando o sistema de teste django? - django, email, assertions, django-testing

Eu tenho o objeto EmailMultiAlternatives com conteúdo de texto e html na minha opinião:

email = EmailMultiAlternatives(subject=subject, body=message, from_email=sender, to=recipient)
email.attach_alternative(messageHTML, "text/html")

Quando testo o conteúdo do atributo do corpo da mensagem, ele contém a versão em texto e não sei como afirmar o conteúdo html:

self.assertHTMLEqual(mail.outbox[0].body, message) # This test passes
self.assertHTMLEqual(mail.outbox[0].<???>, messageHTML) # But here I don"t know what to do

Respostas:

0 para resposta № 1

Quando você escreve - mail.outbox[0], um objeto de email será retornado para você, que é uma instância de EmailMultiAlternatives classe. Tem um atributo chamado alternatives que é uma lista de conteúdos alternativos.

Como você anexou apenas 1 conteúdo alternativo, é possível buscá-lo assim:

mail.outbox[0].alternatives[0]

# above will return the following tuple:

("<html>...</html>", "text/html")

# ______________/    _______/
#        |                |
#   HTML content        mimetype

Para testar a mensagem, você pode fazer o seguinte:

self.assertHTMLEqual(mail.outbox[0].alternatives[0][0], messageHTML)