/ / मैं django टेस्ट सिस्टम का उपयोग करके EmailMultiAlternatives ऑब्जेक्ट में वैकल्पिक शरीर सामग्री का परीक्षण कैसे कर सकता हूं? - django, ईमेल, अभिकथन, django- परीक्षण

मैं django टेस्ट सिस्टम का उपयोग करके EmailMultiAlternatives ऑब्जेक्ट में वैकल्पिक शरीर सामग्री का परीक्षण कैसे कर सकता हूं? - django, ईमेल, अभिकथन, django- परीक्षण

मेरे पास मेरे विचार में टेक्स्ट और HTML सामग्री के साथ EmailMultiAlternatives ऑब्जेक्ट है:

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

जब मैं संदेश की विशेषता का परीक्षण करता हूं तो शरीर की विशेषता में पाठ संस्करण होता है और मुझे पता नहीं है कि 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

उत्तर:

जवाब के लिए 0 № 1

जब आप लिखते हैं - mail.outbox[0], एक ईमेल ऑब्जेक्ट आपको लौटा दिया जाता है, जिसका एक उदाहरण है EmailMultiAlternatives कक्षा। यह एक विशेषता कहा जाता है alternatives जो वैकल्पिक सामग्री की एक सूची है।

चूंकि आपने केवल 1 वैकल्पिक सामग्री संलग्न की है, आप इसे इस तरह से ला सकते हैं:

mail.outbox[0].alternatives[0]

# above will return the following tuple:

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

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

संदेश का परीक्षण करने के लिए, आप यह कर सकते हैं:

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