2011-01-10 28 views
19

Tôi có một số bài kiểm tra đơn vị trong ứng dụng Django 1.2.4 của tôi. Một trong các bài kiểm tra cần xác minh rằng email được gửi trong một số điều kiện nhất định. Tôi có thể làm cái này như thế nào?Xác minh thư đã được gửi từ các bài kiểm tra đơn vị

Lý tưởng nhất là nó có lập trình, nhưng bạn cũng nên in thân email ra khỏi bảng điều khiển.

Trả lời

37

Tài liệu kiểm tra Django mới nhất có phần Email Services.

Sau đó, bạn chỉ cần làm một cái gì đó như:

from django.core import mail 

print mail.outbox[0].body 

Phiên bản HTML được xử lý qua mimetypes thay thế kèm theo, mà bạn có thể truy cập (nếu bạn gắn một) như

content, mimetype = mail.outbox[0].alternatives[0] 

đối tượng Hộp thư đi là EmailMessages, further documented here

+1

Cảm ơn cũng đã cho biết cách để nhận được thông báo email (tài liệu Django chỉ hiển thị cách nhận chủ đề của hộp thư đi). Bạn có biết tham chiếu cho các thuộc tính khác của hộp thư đi không, ví dụ: một phiên bản html của tin nhắn? –

+7

Phiên bản HTML được xử lý thông qua các mimetypes thay thế đính kèm, mà bạn có thể truy cập (nếu bạn đính kèm một) chẳng hạn như 'nội dung, mimetype = mail.outbox [0]. Bên ngoài [0]'. Đối tượng hộp thư là EmailMessages, được thêm tài liệu tại đây: https://docs.djangoproject.com/en/dev/topics/email/#django.core.mail.EmailMessage. – mrooney

+1

Tôi * vậy * muốn các tài liệu Django giải thích rõ ràng như @mrooney, và rằng có một cách để trao cho anh ta một số đại diện. –

Các vấn đề liên quan