mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Refs #29983 -- Added pathlib.Path support to the file email backend.
This commit is contained in:
parent
422b875c65
commit
fbbff7f808
5 changed files with 25 additions and 5 deletions
|
@ -12,6 +12,7 @@ from email.header import Header
|
|||
from email.mime.text import MIMEText
|
||||
from email.utils import parseaddr
|
||||
from io import StringIO
|
||||
from pathlib import Path
|
||||
from smtplib import SMTP, SMTPAuthenticationError, SMTPException
|
||||
from ssl import SSLError
|
||||
from unittest import mock
|
||||
|
@ -567,6 +568,10 @@ class MailTests(HeadersCheckMixin, SimpleTestCase):
|
|||
mail.get_connection('django.core.mail.backends.filebased.EmailBackend', file_path=tmp_dir),
|
||||
filebased.EmailBackend
|
||||
)
|
||||
|
||||
msg = 'expected str, bytes or os.PathLike object, not object'
|
||||
with self.assertRaisesMessage(TypeError, msg):
|
||||
mail.get_connection('django.core.mail.backends.filebased.EmailBackend', file_path=object())
|
||||
self.assertIsInstance(mail.get_connection(), locmem.EmailBackend)
|
||||
|
||||
@override_settings(
|
||||
|
@ -1154,7 +1159,7 @@ class FileBackendTests(BaseEmailBackendTests, SimpleTestCase):
|
|||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.tmp_dir = tempfile.mkdtemp()
|
||||
self.tmp_dir = self.mkdtemp()
|
||||
self.addCleanup(shutil.rmtree, self.tmp_dir)
|
||||
self._settings_override = override_settings(EMAIL_FILE_PATH=self.tmp_dir)
|
||||
self._settings_override.enable()
|
||||
|
@ -1163,6 +1168,9 @@ class FileBackendTests(BaseEmailBackendTests, SimpleTestCase):
|
|||
self._settings_override.disable()
|
||||
super().tearDown()
|
||||
|
||||
def mkdtemp(self):
|
||||
return tempfile.mkdtemp()
|
||||
|
||||
def flush_mailbox(self):
|
||||
for filename in os.listdir(self.tmp_dir):
|
||||
os.unlink(os.path.join(self.tmp_dir, filename))
|
||||
|
@ -1209,6 +1217,12 @@ class FileBackendTests(BaseEmailBackendTests, SimpleTestCase):
|
|||
connection.close()
|
||||
|
||||
|
||||
class FileBackendPathLibTests(FileBackendTests):
|
||||
def mkdtemp(self):
|
||||
tmp_dir = super().mkdtemp()
|
||||
return Path(tmp_dir)
|
||||
|
||||
|
||||
class ConsoleBackendTests(BaseEmailBackendTests, SimpleTestCase):
|
||||
email_backend = 'django.core.mail.backends.console.EmailBackend'
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue