|
@@ -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'
|
|
|
|