From 8f97bf880d3022772581ea4cf8b5bf5297a27bad Mon Sep 17 00:00:00 2001 From: Edwin Grubbs Date: Thu, 1 Apr 2021 16:21:21 -0500 Subject: [PATCH] MIMEBase parameter for EmailMessage.attach() (#577) * MIMEBase parameter for EmailMessage.attach() * Added test_mail.yml Co-authored-by: Edwin Grubbs --- django-stubs/core/mail/message.pyi | 2 +- tests/typecheck/test_mail.yml | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 tests/typecheck/test_mail.yml diff --git a/django-stubs/core/mail/message.pyi b/django-stubs/core/mail/message.pyi index ef98c9c..f6b29af 100644 --- a/django-stubs/core/mail/message.pyi +++ b/django-stubs/core/mail/message.pyi @@ -83,7 +83,7 @@ class EmailMessage: def recipients(self) -> List[str]: ... def send(self, fail_silently: bool = ...) -> int: ... @overload - def attach(self, filename: MIMEText = ...) -> None: ... + def attach(self, filename: MIMEBase = ...) -> None: ... @overload def attach(self, filename: None = ..., content: _AttachmentContent = ..., mimetype: str = ...) -> None: ... @overload diff --git a/tests/typecheck/test_mail.yml b/tests/typecheck/test_mail.yml new file mode 100644 index 0000000..5c2c428 --- /dev/null +++ b/tests/typecheck/test_mail.yml @@ -0,0 +1,19 @@ +- case: check_email_message_attach + main: | + from email.mime.text import MIMEText + from email.mime.image import MIMEImage + from django.core.mail.message import EmailMessage + + message = EmailMessage() + reveal_type(message) # N: Revealed type is 'django.core.mail.message.EmailMessage' + + message.attach("myfilename", "mycontent", "text/plain") + + mime_text = MIMEText("mytext") + reveal_type(mime_text) # N: Revealed type is 'email.mime.text.MIMEText' + message.attach(mime_text) + + mime_image = MIMEImage("mydata", "image/png") + reveal_type(mime_image) # N: Revealed type is 'email.mime.image.MIMEImage' + message.attach(mime_image) + reveal_type(message.attachments) # N: Revealed type is 'builtins.list[Any]'