1

我正在尝试测试带有附件的邮件,我正在附加这样的文件:

# snippet of send_pdf_mail
mail = EmailMessage(
        subject=subject,
        body=message,
        from_email=from_email,
        to=recipient_list,
    )
    dynamic_template_data.update({'subject': subject})
    mail.content_subtype = 'html'
    mail.dynamic_template_data = dynamic_template_data
    mail.template_id = dynamic_template_id

    if attachment:
        attachment.open()
        mail.attach(basename(attachment.name), attachment.read(), guess_type(attachment.name)[0])
        attachment.close()
    return mail.send(fail_silently=False)

那么我的测试是这样的:

    f = open('tests/test.pdf', 'rb')
    user.pdf.save('test.pdf', File(f))
    f.close()

    send_pdf_mail(user)
    self.assertEqual(len(mail.outbox), 1)
    self.assertEqual(mail.outbox[0].to[0], user.email)

但是当我尝试通过以下方式检查是否有附件时:

print(mail.outbox[0].attachments)

它返回一个空列表,所以我不知道为什么,但我测试了代码,我可以确认这确实包含发送电子邮件时的附件。

4

0 回答 0