From 3473fa738dd05685ea5795e52ec49a763b840606 Mon Sep 17 00:00:00 2001 From: pajowu Date: Fri, 10 Apr 2026 12:47:53 +0200 Subject: [PATCH] Fix AttributeError in CheckPrivateNetworkMixin (#6076) --- src/pretix/base/email.py | 2 +- src/tests/base/test_mail.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pretix/base/email.py b/src/pretix/base/email.py index 9be1d204c3..b6a61e8a97 100644 --- a/src/pretix/base/email.py +++ b/src/pretix/base/email.py @@ -251,7 +251,7 @@ def create_connection(address, timeout=socket.getdefaulttimeout(), for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM): af, socktype, proto, canonname, sa = res - if not settings.get("MAIL_CUSTOM_SMTP_ALLOW_PRIVATE_NETWORKS", False): + if not getattr(settings, "MAIL_CUSTOM_SMTP_ALLOW_PRIVATE_NETWORKS", False): ip_addr = ipaddress.ip_address(sa[0]) if ip_addr.is_multicast: raise socket.error(f"Request to multicast address {sa[0]} blocked") diff --git a/src/tests/base/test_mail.py b/src/tests/base/test_mail.py index 9f1f971e53..581710f48e 100644 --- a/src/tests/base/test_mail.py +++ b/src/tests/base/test_mail.py @@ -610,7 +610,7 @@ PRIVATE_IPS_RES = [ @contextmanager -def test_mail_connection(res, should_connect, use_ssl): +def assert_mail_connection(res, should_connect, use_ssl): with ( mock.patch('socket.socket') as mock_socket, mock.patch('socket.getaddrinfo', return_value=res), @@ -638,14 +638,14 @@ def test_mail_connection(res, should_connect, use_ssl): def test_private_smtp_ip(res, use_ssl, settings): settings.EMAIL_CUSTOM_SMTP_BACKEND = 'pretix.base.email.CheckPrivateNetworkSmtpBackend' settings.MAIL_CUSTOM_SMTP_ALLOW_PRIVATE_NETWORKS = False - with test_mail_connection(res=res, should_connect=False, use_ssl=use_ssl), pytest.raises(match="Request to .* blocked"): + with assert_mail_connection(res=res, should_connect=False, use_ssl=use_ssl), pytest.raises(match="Request to .* blocked"): connection = djmail.get_connection(backend=settings.EMAIL_CUSTOM_SMTP_BACKEND, host="localhost", use_ssl=use_ssl) connection.open() settings.MAIL_CUSTOM_SMTP_ALLOW_PRIVATE_NETWORKS = True - with test_mail_connection(res=res, should_connect=True, use_ssl=use_ssl): + with assert_mail_connection(res=res, should_connect=True, use_ssl=use_ssl): connection = djmail.get_connection(backend=settings.EMAIL_CUSTOM_SMTP_BACKEND, host="localhost", use_ssl=use_ssl) @@ -662,7 +662,7 @@ def test_public_smtp_ip(use_ssl, allow_private, settings): settings.EMAIL_CUSTOM_SMTP_BACKEND = 'pretix.base.email.CheckPrivateNetworkSmtpBackend' settings.MAIL_CUSTOM_SMTP_ALLOW_PRIVATE_NETWORKS = allow_private - with test_mail_connection(res=[(socket.AF_INET, socket.SOCK_STREAM, 6, '', ('8.8.8.8', 443))], should_connect=True, use_ssl=use_ssl): + with assert_mail_connection(res=[(socket.AF_INET, socket.SOCK_STREAM, 6, '', ('8.8.8.8', 443))], should_connect=True, use_ssl=use_ssl): connection = djmail.get_connection(backend=settings.EMAIL_CUSTOM_SMTP_BACKEND, host="localhost", use_ssl=use_ssl) @@ -702,7 +702,7 @@ def test_send_mail_private_ip(res, use_ssl, allow_private_networks, env): m.refresh_from_db() return m - with test_mail_connection(res=res, should_connect=allow_private_networks, use_ssl=use_ssl): + with assert_mail_connection(res=res, should_connect=allow_private_networks, use_ssl=use_ssl): m = send_mail() if allow_private_networks: assert m.status == OutgoingMail.STATUS_SENT