mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 11:51:05 -05:00
Cleanup: use pathlib.Path in attach_image_file, test utils
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
from email.mime.image import MIMEImage
|
from email.mime.image import MIMEImage
|
||||||
from email.utils import unquote
|
from email.utils import unquote
|
||||||
import os
|
from pathlib import Path
|
||||||
|
|
||||||
from django.core.mail import EmailMessage, EmailMultiAlternatives, make_msgid
|
from django.core.mail import EmailMessage, EmailMultiAlternatives, make_msgid
|
||||||
|
|
||||||
@@ -51,9 +51,9 @@ class AnymailMessage(AnymailMessageMixin, EmailMultiAlternatives):
|
|||||||
|
|
||||||
def attach_inline_image_file(message, path, subtype=None, idstring="img", domain=None):
|
def attach_inline_image_file(message, path, subtype=None, idstring="img", domain=None):
|
||||||
"""Add inline image from file path to an EmailMessage, and return its content id"""
|
"""Add inline image from file path to an EmailMessage, and return its content id"""
|
||||||
filename = os.path.basename(path)
|
pathobj = Path(path)
|
||||||
with open(path, 'rb') as f:
|
filename = pathobj.name
|
||||||
content = f.read()
|
content = pathobj.read_bytes()
|
||||||
return attach_inline_image(message, content, filename, subtype, idstring, domain)
|
return attach_inline_image(message, content, filename, subtype, idstring, domain)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
# Anymail test utils
|
# Anymail test utils
|
||||||
import os
|
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import uuid
|
import uuid
|
||||||
@@ -7,6 +6,7 @@ import warnings
|
|||||||
from base64 import b64decode
|
from base64 import b64decode
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
|
from pathlib import Path
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
from unittest.util import safe_repr
|
from unittest.util import safe_repr
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ def rfc822_unfold(text):
|
|||||||
# Sample files for testing (in ./test_files subdir)
|
# Sample files for testing (in ./test_files subdir)
|
||||||
#
|
#
|
||||||
|
|
||||||
TEST_FILES_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'test_files')
|
TEST_FILES_DIR = Path(__file__).parent.joinpath("test_files").resolve()
|
||||||
|
|
||||||
SAMPLE_IMAGE_FILENAME = "sample_image.png"
|
SAMPLE_IMAGE_FILENAME = "sample_image.png"
|
||||||
SAMPLE_EMAIL_FILENAME = "sample_email.txt"
|
SAMPLE_EMAIL_FILENAME = "sample_email.txt"
|
||||||
@@ -36,14 +36,15 @@ SAMPLE_EMAIL_FILENAME = "sample_email.txt"
|
|||||||
|
|
||||||
def test_file_path(filename):
|
def test_file_path(filename):
|
||||||
"""Returns path to a test file"""
|
"""Returns path to a test file"""
|
||||||
return os.path.join(TEST_FILES_DIR, filename)
|
# Must convert to a plain str while we support Python 3.5,
|
||||||
|
# because django.core.mail uses os.path functions that don't
|
||||||
|
# accept pathlib.Path until Python 3.6.
|
||||||
|
return str(TEST_FILES_DIR.joinpath(filename))
|
||||||
|
|
||||||
|
|
||||||
def test_file_content(filename):
|
def test_file_content(filename):
|
||||||
"""Returns contents (bytes) of a test file"""
|
"""Returns contents (bytes) of a test file"""
|
||||||
path = test_file_path(filename)
|
return TEST_FILES_DIR.joinpath(filename).read_bytes()
|
||||||
with open(path, "rb") as f:
|
|
||||||
return f.read()
|
|
||||||
|
|
||||||
|
|
||||||
def sample_image_path(filename=SAMPLE_IMAGE_FILENAME):
|
def sample_image_path(filename=SAMPLE_IMAGE_FILENAME):
|
||||||
|
|||||||
Reference in New Issue
Block a user