Skip to content

chore(deps): update dependency django to v6#3245

Open
renovate[bot] wants to merge 2 commits intomainfrom
renovate/django-6.x
Open

chore(deps): update dependency django to v6#3245
renovate[bot] wants to merge 2 commits intomainfrom
renovate/django-6.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 3, 2025

This PR contains the following updates:

Package Change Age Confidence
Django (changelog) ==5.2.10==6.0.1 age confidence

Release Notes

django/django (Django)

v6.0.1

Compare Source

v6.0

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies Third-party library dependencies. label Dec 3, 2025
@renovate renovate bot enabled auto-merge (squash) December 3, 2025 20:03
@codecov
Copy link

codecov bot commented Dec 3, 2025

❌ 37 Tests Failed:

Tests completed Failed Passed Skipped
133 37 96 0
View the top 3 failed test(s) by shortest run time
weblate_web.payments.tests.BackendTest::test_reject
Stack Traces | 0.021s run time
self = <weblate_web.payments.tests.BackendTest testMethod=test_reject>

    def test_reject(self) -> None:
        backend = get_backend("reject")(self.payment)
        self.assertIsNone(backend.initiate(None, "", ""))
        self.check_payment(Payment.PENDING)
>       self.assertFalse(backend.complete(None))
                         ^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:272: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:361: in complete
    self.failure()
weblate_web/payments/backends.py:464: in failure
    self.send_notification("payment_failed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd20319a0>
msg = <email.message.EmailMessage object at 0x7f7fd0c8b950>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.ThePay2Test::test_payment_cancelled
Stack Traces | 0.022s run time
self = <weblate_web.payments.tests.ThePay2Test testMethod=test_payment_cancelled>

    @responses.activate
    def test_payment_cancelled(self) -> None:
        thepay_mock_create_payment()
        responses.get(
            f"https://demo.api.thepay..../projects/42/payments/{self.payment.pk}?merchant_id=00000000-0000-0000-0000-000000000000",
            json={
                "uid": "efd7d8e6-2fa3-3c46-b475-51762331bf56",
                "project_id": 1,
                "order_id": "CZ12131415",
                "state": "error",
                "events": [
                    {
                        "occured_at": "2021-04-20T11:05:49.000000Z",
                        "type": "payment_cancelled",
                    }
                ],
            },
        )
        response = self.backend.initiate(None, "", "")
        self.assertIsNotNone(response)
        self.assertRedirects(
            response,
            "https://gate.thepay.cz/12345/pay",
            fetch_redirect_response=False,
        )
        self.check_payment(Payment.PENDING)
>       self.assertFalse(self.backend.complete(None))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:524: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:361: in complete
    self.failure()
weblate_web/payments/backends.py:464: in failure
    self.send_notification("payment_failed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fdcb71be0>
msg = <email.message.EmailMessage object at 0x7f7fdcce7140>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.ThePay2Test::test_payment_error
Stack Traces | 0.022s run time
self = <weblate_web.payments.tests.ThePay2Test testMethod=test_payment_error>

    @responses.activate
    def test_payment_error(self) -> None:
        thepay_mock_create_payment()
        responses.get(
            f"https://demo.api.thepay..../projects/42/payments/{self.payment.pk}?merchant_id=00000000-0000-0000-0000-000000000000",
            json={
                "uid": "efd7d8e6-2fa3-3c46-b475-51762331bf56",
                "project_id": 1,
                "order_id": "CZ12131415",
                "state": "error",
            },
        )
        response = self.backend.initiate(None, "", "")
        self.assertIsNotNone(response)
        self.assertRedirects(
            response,
            "https://gate.thepay.cz/12345/pay",
            fetch_redirect_response=False,
        )
        self.check_payment(Payment.PENDING)
>       self.assertFalse(self.backend.complete(None))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:550: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:361: in complete
    self.failure()
weblate_web/payments/backends.py:464: in failure
    self.send_notification("payment_failed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fda2f18b0>
msg = <email.message.EmailMessage object at 0x7f7fda2f1070>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.ThePay2Test::test_pay_recurring_error_blank_message
Stack Traces | 0.023s run time
self = <weblate_web.payments.tests.ThePay2Test testMethod=test_pay_recurring_error_blank_message>

    @responses.activate
    def test_pay_recurring_error_blank_message(self) -> None:
        # Modify backend payment as it has a copy
        self.backend.payment.repeat = Payment.objects.create(
            customer=self.customer,
            amount=100,
            description="Test Item",
            backend=self.backend_name,
        )
        self.backend.payment.save()
        responses.post(
            f"https://demo.api.thepay..../projects/42/payments/{self.backend.payment.repeat.pk}/savedauthorization?merchant_id=00000000-0000-0000-0000-000000000000",
            json={
                "state": "error",
                "message": "",
                "parent": {"recurring_payments_available": False},
            },
        )
        self.assertIsNone(self.backend.initiate(None, "", ""))
        self.check_payment(Payment.PENDING)
>       self.assertFalse(self.backend.complete(None))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:680: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:361: in complete
    self.failure()
weblate_web/payments/backends.py:464: in failure
    self.send_notification("payment_failed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd215c950>
msg = <email.message.EmailMessage object at 0x7f7fd215fc80>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.ThePay2Test::test_pay_recurring_error_no_message
Stack Traces | 0.023s run time
self = <weblate_web.payments.tests.ThePay2Test testMethod=test_pay_recurring_error_no_message>

    @responses.activate
    def test_pay_recurring_error_no_message(self) -> None:
        # Modify backend payment as it has a copy
        self.backend.payment.repeat = Payment.objects.create(
            customer=self.customer,
            amount=100,
            description="Test Item",
            backend=self.backend_name,
        )
        self.backend.payment.save()
        responses.post(
            f"https://demo.api.thepay..../projects/42/payments/{self.backend.payment.repeat.pk}/savedauthorization?merchant_id=00000000-0000-0000-0000-000000000000",
            json={
                "state": "error",
            },
        )
        self.assertIsNone(self.backend.initiate(None, "", ""))
        self.check_payment(Payment.PENDING)
>       self.assertFalse(self.backend.complete(None))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:706: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:361: in complete
    self.failure()
weblate_web/payments/backends.py:464: in failure
    self.send_notification("payment_failed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fdf656180>
msg = <email.message.EmailMessage object at 0x7f7fd98b9550>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.ThePay2Test::test_pay_recurring_error
Stack Traces | 0.025s run time
self = <weblate_web.payments.tests.ThePay2Test testMethod=test_pay_recurring_error>

    @responses.activate
    def test_pay_recurring_error(self) -> None:
        # Modify backend payment as it has a copy
        self.backend.payment.repeat = Payment.objects.create(
            customer=self.customer,
            amount=100,
            description="Test Item",
            backend=self.backend_name,
        )
        self.backend.payment.save()
        responses.post(
            f"https://demo.api.thepay..../projects/42/payments/{self.backend.payment.repeat.pk}/savedauthorization?merchant_id=00000000-0000-0000-0000-000000000000",
            json={
                "state": "error",
                "message": "Failed card",
                "parent": {"recurring_payments_available": True},
            },
        )
        self.assertIsNone(self.backend.initiate(None, "", ""))
        self.check_payment(Payment.PENDING)
>       self.assertFalse(self.backend.complete(None))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:654: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:361: in complete
    self.failure()
weblate_web/payments/backends.py:464: in failure
    self.send_notification("payment_failed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd0c12600>
msg = <email.message.EmailMessage object at 0x7f7fd9302c30>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ExpiryTest::test_expiring_donate_notify_user
Stack Traces | 0.392s run time
self = <weblate_web.tests.ExpiryTest testMethod=test_expiring_donate_notify_user>

    def test_expiring_donate_notify_user(self) -> None:
        self.create_donation(years=0, days=7, recurring="")
>       RecurringPaymentsCommand.notify_expiry(force_summary=True)

weblate_web/tests.py:1742: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../management/commands/recurring_payments.py:101: in notify_expiry
    donation.send_notification("payment_missing")
weblate_web/models.py:249: in send_notification
    self.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd213c320>
msg = <email.message.EmailMessage object at 0x7f7fda1a9d60>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ExpiryTest::test_expiring_recurring_donate_notify_user
Stack Traces | 0.393s run time
self = <weblate_web.tests.ExpiryTest testMethod=test_expiring_recurring_donate_notify_user>

    def test_expiring_recurring_donate_notify_user(self) -> None:
        self.create_donation(years=0, days=7)
>       RecurringPaymentsCommand.notify_expiry(force_summary=True)

weblate_web/tests.py:1753: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../management/commands/recurring_payments.py:98: in notify_expiry
    donation.send_notification("payment_upcoming")
weblate_web/models.py:249: in send_notification
    self.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd3e238f0>
msg = <email.message.EmailMessage object at 0x7f7fdf380a40>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ExpiryTest::test_expiring_recurring_subscription_notify_user
Stack Traces | 0.403s run time
self = <weblate_web.tests.ExpiryTest testMethod=test_expiring_recurring_subscription_notify_user>

    def test_expiring_recurring_subscription_notify_user(self) -> None:
        self.create_service(years=0, days=7)
>       RecurringPaymentsCommand.notify_expiry(force_summary=True)

weblate_web/tests.py:1787: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../management/commands/recurring_payments.py:73: in notify_expiry
    subscription.send_notification("payment_upcoming")
weblate_web/models.py:1080: in send_notification
    self.service.customer.send_notification(notification, subscription=self)
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd95d5160>
msg = <email.message.EmailMessage object at 0x7f7fd0cb92e0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ExpiryTest::test_expiring_subscription_notify_user
Stack Traces | 0.407s run time
self = <weblate_web.tests.ExpiryTest testMethod=test_expiring_subscription_notify_user>

    def test_expiring_subscription_notify_user(self) -> None:
        self.create_service(years=0, days=7, recurring="")
>       RecurringPaymentsCommand.notify_expiry(force_summary=True)

weblate_web/tests.py:1778: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../management/commands/recurring_payments.py:76: in notify_expiry
    subscription.send_notification("payment_missing")
weblate_web/models.py:1080: in send_notification
    self.service.customer.send_notification(notification, subscription=self)
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fdd4dcda0>
msg = <email.message.EmailMessage object at 0x7f7fd209d880>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ExpiryTest::test_expiring_subscription
Stack Traces | 0.412s run time
self = <weblate_web.tests.ExpiryTest testMethod=test_expiring_subscription>

    def test_expiring_subscription(self) -> None:
        self.create_service(years=0, days=-2, recurring="")
>       RecurringPaymentsCommand.notify_expiry(force_summary=True)

weblate_web/tests.py:1760: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../management/commands/recurring_payments.py:112: in notify_expiry
    send_notification(
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd3758470>
msg = <email.message.EmailMessage object at 0x7f7fd96ebe60>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ExpiryTest::test_expiring_donate
Stack Traces | 0.421s run time
self = <weblate_web.tests.ExpiryTest testMethod=test_expiring_donate>

    def test_expiring_donate(self) -> None:
        self.create_donation(years=0, days=-2, recurring="")
>       RecurringPaymentsCommand.notify_expiry(force_summary=True)

weblate_web/tests.py:1726: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../management/commands/recurring_payments.py:112: in notify_expiry
    send_notification(
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd213c560>
msg = <email.message.EmailMessage object at 0x7f7fd213c4a0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.PaymentsTest::test_reject
Stack Traces | 0.546s run time
self = <weblate_web.tests.PaymentsTest testMethod=test_reject>

    @override_settings(PAYMENT_DEBUG=True)
    def test_reject(self) -> None:
        payment, url, _dummy = self.prepare_payment()
>       response = self.client.post(url, {"method": "reject"})
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1053: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1153: in post
    response = super().post(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:499: in post
    return self.generic(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:441: in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:145: in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/edit.py:151: in post
    return self.form_valid(form)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:484: in form_valid
    backend.complete(self.request)
weblate_web/payments/backends.py:361: in complete
    self.failure()
weblate_web/payments/backends.py:464: in failure
    self.send_notification("payment_failed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd3754da0>
msg = <email.message.EmailMessage object at 0x7f7fd3fb78c0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.BackendTest::test_proforma
Stack Traces | 0.678s run time
self = <weblate_web.payments.tests.BackendTest testMethod=test_proforma>

    @responses.activate
    @override_settings(
        FIO_TOKEN="test-token",  # noqa: S106
    )
    def test_proforma(self) -> None:
        mock_vies()
        cnb_mock_rates()
        backend = get_backend("fio-bank")(self.payment)
>       self.assertIsNotNone(backend.initiate(None, "", "/complete/"))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:306: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:334: in initiate
    result = self.perform(request, back_url, complete_url)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/backends.py:538: in perform
    self.send_notification("payment_pending")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd232f2c0>
msg = <email.message.EmailMessage object at 0x7f7fd8126bd0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.BackendTest::test_pay
Stack Traces | 1.11s run time
self = <weblate_web.payments.tests.BackendTest testMethod=test_pay>

    def test_pay(self) -> None:
        backend = get_backend("pay")(self.payment)
        self.assertIsNone(backend.initiate(None, "", ""))
        self.check_payment(Payment.PENDING)
>       self.assertTrue(backend.complete(None))
                        ^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:263: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd21e5100>
msg = <email.message.EmailMessage object at 0x7f7fd0cdcad0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.ThePay2Test::test_pay_recurring
Stack Traces | 1.14s run time
self = <weblate_web.payments.tests.ThePay2Test testMethod=test_pay_recurring>

    @responses.activate
    def test_pay_recurring(self) -> None:
        # Modify backend payment as it has a copy
        self.backend.payment.repeat = Payment.objects.create(
            customer=self.customer,
            amount=100,
            description="Test Item",
            backend=self.backend_name,
        )
        self.backend.payment.save()
        responses.post(
            f"https://demo.api.thepay..../projects/42/payments/{self.backend.payment.repeat.pk}/savedauthorization?merchant_id=00000000-0000-0000-0000-000000000000",
            json={
                "state": "paid",
                "parent": {"recurring_payments_available": True},
            },
        )
        self.assertIsNone(self.backend.initiate(None, "", ""))
        self.check_payment(Payment.PENDING)
>       self.assertTrue(self.backend.complete(None))
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:629: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd0ac53a0>
msg = <email.message.EmailMessage object at 0x7f7fd0ec3080>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.BackendTest::test_invoice_in_text
Stack Traces | 1.25s run time
self = <weblate_web.payments.tests.BackendTest testMethod=test_invoice_in_text>

    @responses.activate
    @override_settings(
        FIO_TOKEN="test-token",  # noqa: S106
    )
    def test_invoice_in_text(self) -> None:
        # Czech bank notation
>       self.test_invoice_bank(format_string="PROFORMA{}PAYMENT")

weblate_web/payments/tests.py:400: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../site-packages/responses/__init__.py:232: in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../django/test/utils.py:458: in inner
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/tests.py:370: in test_invoice_bank
    FioBank.fetch_payments()
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../django/utils/decorators.py:48: in _wrapper
    return bound_method(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../views/decorators/debug.py:75: in sensitive_variables_wrapper
    return func(*func_args, **func_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/backends.py:651: in fetch_payments
    backend.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd3fd9d60>
msg = <email.message.EmailMessage object at 0x7f7fda23d0a0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.BackendTest::test_invoice_vs
Stack Traces | 1.26s run time
self = <weblate_web.payments.tests.BackendTest testMethod=test_invoice_vs>

    @responses.activate
    @override_settings(
        FIO_TOKEN="test-token",  # noqa: S106
    )
    def test_invoice_vs(self) -> None:
        # Czech bank notation
>       self.test_invoice_bank(format_string="VS{}/SS/KS")

weblate_web/payments/tests.py:392: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../site-packages/responses/__init__.py:232: in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../django/test/utils.py:458: in inner
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/tests.py:370: in test_invoice_bank
    FioBank.fetch_payments()
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../django/utils/decorators.py:48: in _wrapper
    return bound_method(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../views/decorators/debug.py:75: in sensitive_variables_wrapper
    return func(*func_args, **func_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/backends.py:651: in fetch_payments
    backend.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd213fcb0>
msg = <email.message.EmailMessage object at 0x7f7fda1aa4b0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12......................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.PaymentTest::test_fosdem_donation
Stack Traces | 1.27s run time
self = <weblate_web.tests.PaymentTest testMethod=test_fosdem_donation>

    @override_settings(**THEPAY2_MOCK_SETTINGS)
    @responses.activate
    def test_fosdem_donation(self) -> None:
        thepay_mock_create_payment()
    
        response = self.client.get("/fosdem/donate/", follow=True)
        self.assertContains(response, "Please provide your name")
        payment = Payment.objects.all().get()
        self.assertEqual(payment.amount, 30)
        self.assertEqual(payment.state, Payment.NEW)
        customer_url = reverse("payment-customer", kwargs={"pk": payment.uuid})
        payment_url = reverse("payment", kwargs={"pk": payment.uuid})
        self.assertRedirects(response, customer_url)
        response = self.client.post(
            customer_url, {"name": "FOSDEM Visitor", "country": "BE"}, follow=True
        )
        self.assertContains(response, "Please choose payment method")
        response = self.client.post(payment_url, {"method": "thepay2-card"})
        self.assertEqual(response.status_code, 302)
        self.assertTrue(response.url.startswith("https://gate.thepay.cz/"))  # type: ignore[attr-defined]
    
        payment.refresh_from_db()
        self.assertEqual(payment.state, Payment.PENDING)
    
        # Perform the payment
        thepay_mock_payment(payment.pk)
    
        # Back to our web
>       response = self.client.get(payment.get_complete_url())
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1424: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../django/test/client.py:1124: in get
    response = super().get(
.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../django/test/client.py:475: in get
    return self.generic(
.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:597: in dispatch
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:318: in send_notification
    ContentFile(email.message().as_bytes()),
                ^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd0f6b320>
msg = <email.message.EmailMessage object at 0x7f7fd99fb3e0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.BackendTest::test_pending
Stack Traces | 1.28s run time
self = <weblate_web.payments.tests.BackendTest testMethod=test_pending>

    def test_pending(self) -> None:
        backend = get_backend("pending")(self.payment)
        self.assertIsNotNone(backend.initiate(None, "", ""))
        self.check_payment(Payment.PENDING)
>       self.assertTrue(backend.complete(None))
                        ^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:281: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd22da060>
msg = <email.message.EmailMessage object at 0x7f7fd0c294c0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.ThePay2Test::test_pay
Stack Traces | 1.29s run time
self = <weblate_web.payments.tests.ThePay2Test testMethod=test_pay>

    @responses.activate
    def test_pay(self) -> None:
        thepay_mock_create_payment()
        thepay_mock_payment(self.payment.pk)
        response = self.backend.initiate(None, "", "")
        self.assertIsNotNone(response)
        self.assertRedirects(
            response,
            "https://gate.thepay.cz/12345/pay",
            fetch_redirect_response=False,
        )
        self.check_payment(Payment.PENDING)
>       self.assertTrue(self.backend.complete(None))
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/payments/tests.py:469: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd99d1bb0>
msg = <email.message.EmailMessage object at 0x7f7fd0a5bb90>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.BackendTest::test_invoice_bank
Stack Traces | 1.42s run time
self = <weblate_web.payments.tests.BackendTest testMethod=test_invoice_bank>
format_string = '{}'

    @responses.activate
    @override_settings(
        FIO_TOKEN="test-token",  # noqa: S106
    )
    def test_invoice_bank(self, format_string="{}") -> None:
        mock_vies()
        cnb_mock_rates()
        customer = Customer.objects.create(**CUSTOMER)
        invoice = Invoice.objects.create(
            customer=customer,
            kind=InvoiceKind.INVOICE,
            category=InvoiceCategory.HOSTING,
            vat_rate=21,
        )
        invoice.invoiceitem_set.create(
            description="Test item",
            unit_price=100,
        )
        invoice.generate_files()
    
        responses.add(responses.GET, FIO_API, body=json.dumps(FIO_TRASACTIONS))
        FioBank.fetch_payments()
        self.assertFalse(invoice.paid_payment_set.exists())
        self.assertEqual(len(mail.outbox), 0)
    
        received = deepcopy(FIO_TRASACTIONS)
        transaction = received["accountStatement"]["transactionList"]["transaction"]  # type: ignore[index]
        payment_message = format_string.format(invoice.number)
        transaction[0]["column16"]["value"] = payment_message
        transaction[1]["column16"]["value"] = payment_message
        transaction[1]["column1"]["value"] = int(invoice.total_amount)
        responses.replace(responses.GET, FIO_API, body=json.dumps(received))
>       FioBank.fetch_payments()

weblate_web/payments/tests.py:370: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../django/utils/decorators.py:48: in _wrapper
    return bound_method(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../views/decorators/debug.py:75: in sensitive_variables_wrapper
    return func(*func_args, **func_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/backends.py:651: in fetch_payments
    backend.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd91e3b00>
msg = <email.message.EmailMessage object at 0x7f7fd81266f0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.PaymentTest::test_recurring
Stack Traces | 1.43s run time
self = <weblate_web.tests.PaymentTest testMethod=test_recurring>

    @responses.activate
    @override_settings(PAYMENT_DEBUG=True)
    def test_recurring(self) -> None:
        donation = self.create_donation(years=0)
        payment = cast("Payment", donation.payment_obj)
        self.assertIsNotNone(payment)
        # No recurring payments for now
        self.assertEqual(payment.payment_set.count(), 0)
    
        # Trigger payment and process it
>       call_command("recurring_payments")

weblate_web/tests.py:1381: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/management/__init__.py:195: in call_command
    return command.execute(*args, **defaults)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/management/base.py:464: in execute
    output = self.handle(*args, **options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../management/commands/recurring_payments.py:44: in handle
    self.handle_donations()
.../management/commands/recurring_payments.py:214: in handle_donations
    cls.peform_payment(
.../management/commands/recurring_payments.py:166: in peform_payment
    repeated.trigger_recurring()
weblate_web/payments/models.py:598: in trigger_recurring
    backend.complete(None)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd0f68a70>
msg = <email.message.EmailMessage object at 0x7f7fd2363200>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ExpiryTest::test_expiring_recurring_donate
Stack Traces | 1.47s run time
self = <weblate_web.tests.ExpiryTest testMethod=test_expiring_recurring_donate>

    def test_expiring_recurring_donate(self) -> None:
        self.create_donation(years=0, days=-2)
        RecurringPaymentsCommand.notify_expiry(force_summary=True)
        self.assert_notifications()
>       RecurringPaymentsCommand.handle_donations()

weblate_web/tests.py:1735: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../management/commands/recurring_payments.py:214: in handle_donations
    cls.peform_payment(
.../management/commands/recurring_payments.py:166: in peform_payment
    repeated.trigger_recurring()
weblate_web/payments/models.py:598: in trigger_recurring
    backend.complete(None)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fdf36c6b0>
msg = <email.message.EmailMessage object at 0x7f7fd0b924e0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.payments.tests.BackendTest::test_invoice_url
Stack Traces | 1.49s run time
self = <weblate_web.payments.tests.BackendTest testMethod=test_invoice_url>

    @responses.activate
    @override_settings(
        FIO_TOKEN="test-token",  # noqa: S106
    )
    def test_invoice_url(self) -> None:
        mock_vies()
        cnb_mock_rates()
        customer = Customer.objects.create(**CUSTOMER)
        invoice = Invoice.objects.create(
            customer=customer,
            kind=InvoiceKind.INVOICE,
            category=InvoiceCategory.HOSTING,
            vat_rate=21,
        )
        invoice.invoiceitem_set.create(
            description="Test item",
            unit_price=100,
        )
        invoice.generate_files()
    
        url = cast("str", invoice.get_payment_url())
        self.assertIsNotNone(url)
    
        # Trigger payment what creates an empty payment object
        self.client.get(url, follow=True)
    
        received = deepcopy(FIO_TRASACTIONS)
        transaction = received["accountStatement"]["transactionList"]["transaction"]  # type: ignore[index]
        transaction[0]["column16"]["value"] = invoice.number
        transaction[1]["column16"]["value"] = invoice.number
        transaction[1]["column1"]["value"] = int(invoice.total_amount)
        responses.add(responses.GET, FIO_API, body=json.dumps(received))
>       FioBank.fetch_payments()

weblate_web/payments/tests.py:434: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../django/utils/decorators.py:48: in _wrapper
    return bound_method(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../views/decorators/debug.py:75: in sensitive_variables_wrapper
    return func(*func_args, **func_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/backends.py:651: in fetch_payments
    backend.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd95fb560>
msg = <email.message.EmailMessage object at 0x7f7fd9a718e0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ExpiryTest::test_expiring_recurring_subscription
Stack Traces | 1.49s run time
self = <weblate_web.tests.ExpiryTest testMethod=test_expiring_recurring_subscription>

    def test_expiring_recurring_subscription(self) -> None:
        self.create_service(years=0, days=-2)
        RecurringPaymentsCommand.notify_expiry(force_summary=True)
        self.assert_notifications()
>       RecurringPaymentsCommand.handle_subscriptions()

weblate_web/tests.py:1771: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../management/commands/recurring_payments.py:192: in handle_subscriptions
    cls.peform_payment(
.../management/commands/recurring_payments.py:166: in peform_payment
    repeated.trigger_recurring()
weblate_web/payments/models.py:598: in trigger_recurring
    backend.complete(None)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd36643b0>
msg = <email.message.EmailMessage object at 0x7f7fd0c2bb90>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12............/x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.PaymentTest::test_donation_workflow_bank
Stack Traces | 1.71s run time
self = <weblate_web.tests.PaymentTest testMethod=test_donation_workflow_bank>

    def test_donation_workflow_bank(self) -> None:
        self.login()
        response = self.client.post(
            ".../en/donate/new/",
            {"recurring": "y", "amount": 10, "reward": 0},
            follow=True,
        )
        self.assertContains(response, "Please provide your billing")
        payment = Payment.objects.all().get()
        self.assertEqual(payment.state, Payment.NEW)
        customer_url = reverse("payment-customer", kwargs={"pk": payment.uuid})
        payment_url = reverse("payment", kwargs={"pk": payment.uuid})
        self.assertRedirects(response, customer_url)
        response = self.client.post(customer_url, TEST_CUSTOMER, follow=True)
        self.assertContains(response, "Please choose payment method")
>       response = self.client.post(payment_url, {"method": "fio-bank"}, follow=True)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1327: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1153: in post
    response = super().post(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:499: in post
    return self.generic(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:441: in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:145: in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/edit.py:151: in post
    return self.form_valid(form)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:470: in form_valid
    result = backend.initiate(
weblate_web/payments/backends.py:334: in initiate
    result = self.perform(request, back_url, complete_url)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/backends.py:538: in perform
    self.send_notification("payment_pending")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd9cb8260>
msg = <email.message.EmailMessage object at 0x7f7fd9c4f9b0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.PaymentsTest::test_pending
Stack Traces | 1.9s run time
self = <weblate_web.tests.PaymentsTest testMethod=test_pending>

    @override_settings(PAYMENT_DEBUG=True)
    def test_pending(self) -> None:
        payment, url, _dummy = self.prepare_payment()
        response = self.client.post(url, {"method": "pending"})
        complete_url = reverse("payment-complete", kwargs={"pk": payment.pk})
        self.assertRedirects(
            response,
            f"https://cihar.com/?url=http://localhost:1234{complete_url}",
            fetch_redirect_response=False,
        )
        self.check_payment(payment, Payment.PENDING)
>       response = self.client.get(complete_url)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1076: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:1124: in get
    response = super().get(
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:475: in get
    return self.generic(
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:597: in dispatch
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd94f5220>
msg = <email.message.EmailMessage object at 0x7f7fda33f7d0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.PaymentTest::test_donation_workflow_card_reward
Stack Traces | 2.05s run time
self = <weblate_web.tests.PaymentTest testMethod=test_donation_workflow_card_reward>

    def test_donation_workflow_card_reward(self) -> None:
>       self.test_donation_workflow_card(2)

weblate_web/tests.py:1213: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/utils.py:458: in inner
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../site-packages/responses/__init__.py:232: in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/tests.py:1245: in test_donation_workflow_card
    response = self.client.get(payment.get_complete_url(), follow=True)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1124: in get
    response = super().get(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:475: in get
    return self.generic(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:597: in dispatch
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd0ac48f0>
msg = <email.message.EmailMessage object at 0x7f7fd94b9fa0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.PaymentsTest::test_pay
Stack Traces | 2.07s run time
self = <weblate_web.tests.PaymentsTest testMethod=test_pay>

    @override_settings(PAYMENT_DEBUG=True)
    @responses.activate
    def test_pay(self) -> None:
        cnb_mock_rates()
        payment, url, _dummy = self.prepare_payment()
>       response = self.client.post(url, {"method": "pay"})
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1010: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1153: in post
    response = super().post(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:499: in post
    return self.generic(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:441: in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:145: in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/edit.py:151: in post
    return self.form_valid(form)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:484: in form_valid
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd2032b10>
msg = <email.message.EmailMessage object at 0x7f7fdf1bd460>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ServiceTest::test_hosted_pay_yearly
Stack Traces | 2.12s run time
self = <weblate_web.tests.ServiceTest testMethod=test_hosted_pay_yearly>

    @responses.activate
    def test_hosted_pay_yearly(self) -> None:
        mock_vies()
        cnb_mock_rates()
        with override("en"):
            self.login()
            service = self.create_service(
                years=0, days=3, recurring="", package="test:test-1-m"
            )
            response = self.client.post(
                reverse("subscription-pay", kwargs={"pk": service.pk}),
                {"switch_yearly": 1},
                follow=True,
            )
            payment_url = response.redirect_chain[0][0].split("localhost:1234")[-1]
            self.assertTrue(payment_url.startswith("/en/payment/"))
>           response = self.client.post(payment_url, {"method": "pay"}, follow=True)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1877: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1153: in post
    response = super().post(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:499: in post
    return self.generic(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:441: in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:145: in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/edit.py:151: in post
    return self.form_valid(form)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:484: in form_valid
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd93a4ec0>
msg = <email.message.EmailMessage object at 0x7f7fd9302c90>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ServiceTest::test_hosted_upgrade
Stack Traces | 2.13s run time
self = <weblate_web.tests.ServiceTest testMethod=test_hosted_upgrade>

    @responses.activate
    def test_hosted_upgrade(self) -> None:
        mock_vies()
        cnb_mock_rates()
        with override("en"):
            self.login()
            service = self.create_service(
                years=0, days=3, recurring="", package="test:test-1"
            )
            suggestions = service.get_suggestions()
            self.assertEqual(len(suggestions), 1)
            self.assertEqual(suggestions[0][0], "test:test-2")
            params: dict[str, str | int] = {
                "plan": "test:test-2",
                "service": service.pk,
            }
            response = self.client.get(reverse("subscription-new"), params, follow=True)
            payment_url = response.redirect_chain[0][0].split("localhost:1234")[-1]
            self.assertTrue(payment_url.startswith("/en/payment/"))
>           response = self.client.post(payment_url, {"method": "pay"}, follow=True)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1978: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1153: in post
    response = super().post(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:499: in post
    return self.generic(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:441: in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:145: in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/edit.py:151: in post
    return self.form_valid(form)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:484: in form_valid
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd96c3920>
msg = <email.message.EmailMessage object at 0x7f7fd20eda30>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.PaymentTest::test_service_workflow_card
Stack Traces | 2.22s run time
self = <weblate_web.tests.PaymentTest testMethod=test_service_workflow_card>

    @override_settings(**THEPAY2_MOCK_SETTINGS, **SIGNATURE_MOCK_SETTINGS)
    @responses.activate
    def test_service_workflow_card(self) -> None:  # noqa: PLR0915
        self.login()
        thepay_mock_create_payment()
        Package.objects.create(name="community", verbose="Community support", price=0)
        Package.objects.create(name="extended", verbose="Extended support", price=42)
        response = self.client.get(".../en/subscription/new/?plan=extended", follow=True)
        self.assertContains(response, "Please provide your billing")
        payment = Payment.objects.all().get()
        self.assertEqual(payment.state, Payment.NEW)
        customer_url = reverse("payment-customer", kwargs={"pk": payment.uuid})
        payment_url = reverse("payment", kwargs={"pk": payment.uuid})
        self.assertRedirects(response, customer_url)
        response = self.client.post(customer_url, TEST_CUSTOMER, follow=True)
        self.assertContains(response, "Please choose payment method")
        response = self.client.post(payment_url, {"method": "thepay2-card"})
        self.assertEqual(response.status_code, 302)
        self.assertTrue(response.url.startswith("https://gate.thepay.cz/"))  # type: ignore[attr-defined]
    
        payment.refresh_from_db()
        self.assertEqual(payment.state, Payment.PENDING)
    
        # Perform the payment
        thepay_mock_payment(payment.pk)
    
        # Back to our web
>       response = self.client.get(payment.get_complete_url(), follow=True)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1126: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:1124: in get
    response = super().get(
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:475: in get
    return self.generic(
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:597: in dispatch
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd21973e0>
msg = <email.message.EmailMessage object at 0x7f7fd9d01bb0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.PaymentTest::test_donation_workflow_card
Stack Traces | 2.23s run time
self = <weblate_web.tests.PaymentTest testMethod=test_donation_workflow_card>
reward = 0

    @override_settings(**THEPAY2_MOCK_SETTINGS)
    @responses.activate
    def test_donation_workflow_card(self, reward=0) -> None:  # noqa: PLR0915
        self.login()
        thepay_mock_create_payment()
        response = self.client.post(
            ".../en/donate/new/",
            {"recurring": "y", "amount": 1000, "reward": reward},
            follow=True,
        )
        self.assertContains(response, "Please provide your billing")
        payment = Payment.objects.all().get()
        self.assertEqual(payment.amount, 1000)
        self.assertEqual(payment.state, Payment.NEW)
        customer_url = reverse("payment-customer", kwargs={"pk": payment.uuid})
        payment_url = reverse("payment", kwargs={"pk": payment.uuid})
        self.assertRedirects(response, customer_url)
        response = self.client.post(customer_url, TEST_CUSTOMER, follow=True)
        self.assertContains(response, "Please choose payment method")
        response = self.client.post(payment_url, {"method": "thepay2-card"})
        self.assertEqual(response.status_code, 302)
        self.assertTrue(response.url.startswith("https://gate.thepay.cz/"))  # type: ignore[attr-defined]
    
        payment.refresh_from_db()
        self.assertEqual(payment.state, Payment.PENDING)
    
        # Perform the payment
        thepay_mock_payment(payment.pk)
    
        # Back to our web
>       response = self.client.get(payment.get_complete_url(), follow=True)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1245: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:1124: in get
    response = super().get(
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:475: in get
    return self.generic(
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:597: in dispatch
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd367e5d0>
msg = <email.message.EmailMessage object at 0x7f7fd1ff93a0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ServiceTest::test_hosted_pay
Stack Traces | 2.42s run time
self = <weblate_web.tests.ServiceTest testMethod=test_hosted_pay>

    @responses.activate
    def test_hosted_pay(self) -> None:
        mock_vies()
        cnb_mock_rates()
        with override("en"):
            self.login()
            service = self.create_service(
                years=0, days=3, recurring="", package="test:test-1-m"
            )
            hosted = service.hosted_subscriptions
            self.assertEqual(
                hosted[0].expires.date(),
                timezone.now().date() + timedelta(days=3),
            )
    
            # Trigger customer editing
            service.customer.name = ""
            service.customer.save()
    
            response = self.client.post(
                reverse("subscription-pay", kwargs={"pk": service.pk}),
                follow=True,
            )
            payment_url = response.redirect_chain[0][0].split("localhost:1234")[-1]
            payment_edit_url = response.redirect_chain[1][0]
            self.assertTrue(payment_url.startswith("/en/payment/"))
            response = self.client.post(payment_edit_url, TEST_CUSTOMER, follow=True)
            self.assertRedirects(response, payment_url)
>           response = self.client.post(payment_url, {"method": "pay"}, follow=True)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1844: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1153: in post
    response = super().post(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:499: in post
    return self.generic(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:441: in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:145: in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/edit.py:151: in post
    return self.form_valid(form)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:484: in form_valid
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd0a58ad0>
msg = <email.message.EmailMessage object at 0x7f7fda44d790>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.tests.ServiceTest::test_decicated_new
Stack Traces | 2.45s run time
self = <weblate_web.tests.ServiceTest testMethod=test_decicated_new>

    @override_settings(ZAMMAD_TOKEN="test")  # noqa: S106
    @responses.activate
    def test_decicated_new(self) -> None:
        mock_vies()
        cnb_mock_rates()
        self.create_packages()
        responses.add(
            responses.POST,
            "https://care.weblate..../api/v1/tickets",
            json={
                "id": 19,
                "group_id": 2,
                "priority_id": 2,
                "state_id": 1,
                "organization_id": None,
                "number": "22019",
                "title": "Help me!",
                "owner_id": 1,
                "customer_id": 10,
                "note": None,
                "first_response_at": None,
                "first_response_escalation_at": None,
                "first_response_in_min": None,
                "first_response_diff_in_min": None,
                "close_at": None,
                "close_escalation_at": None,
                "close_in_min": None,
                "close_diff_in_min": None,
                "update_escalation_at": None,
                "update_in_min": None,
                "update_diff_in_min": None,
                "last_contact_at": None,
                "last_contact_agent_at": None,
                "last_contact_customer_at": None,
                "last_owner_update_at": None,
                "create_article_type_id": 10,
                "create_article_sender_id": 1,
                "article_count": 1,
                "escalation_at": None,
                "pending_time": None,
                "type": None,
                "time_unit": None,
                "preferences": {},
                "updated_by_id": 3,
                "created_by_id": 3,
                "created_at": "2021-11-08T14:17:41.913Z",
                "updated_at": "2021-11-08T14:17:41.994Z",
                "article_ids": [30],
                "ticket_time_accounting_ids": [],
            },
        )
    
        with override("en"):
            self.login()
            response = self.client.get(
                reverse("subscription-new"),
                {"plan": "test:test-1"},
                follow=True,
            )
            payment_url = response.redirect_chain[0][0].split("localhost:1234")[-1]
            payment_edit_url = response.redirect_chain[1][0]
            self.assertTrue(payment_url.startswith("/en/payment/"))
            response = self.client.post(payment_edit_url, TEST_CUSTOMER, follow=True)
            self.assertRedirects(response, payment_url)
>           response = self.client.post(payment_url, {"method": "pay"}, follow=True)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

weblate_web/tests.py:1955: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1153: in post
    response = super().post(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:499: in post
    return self.generic(
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:441: in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/base.py:145: in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../views/generic/edit.py:151: in post
    return self.form_valid(form)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:484: in form_valid
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:299: in send_notification
    email = send_notification(notification, recipients, invoice=invoice, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/payments/utils.py:118: in send_notification
    email.send()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:358: in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../mail/backends/locmem.py:30: in send_messages
    message.message()
.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd2195d30>
msg = <email.message.EmailMessage object at 0x7f7fd953a780>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12........................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError
weblate_web.invoices.tests.InvoiceTestCase::test_pay_link
Stack Traces | 3.07s run time
self = <weblate_web.invoices.tests.InvoiceTestCase testMethod=test_pay_link>

    @override_settings(PAYMENT_DEBUG=True)
    @responses.activate
    def test_pay_link(self) -> None:
        self.mock_requests()
        invoice = self.create_invoice_package()
        self.validate_invoice(invoice)
        url = cast("str", invoice.get_payment_url())
        self.assertIsNotNone(url)
    
        # Unauthenticated should redirect to login
        response = self.client.get(url, follow=True)
        self.assertContains(response, "Payment Summary")
        # Unauthenticated user should see note about terms
        self.assertContains(response, "By performing the payment, you accept our")
        self.assertNotContains(response, "Billing information")
        self.assertEqual(invoice.draft_payment_set.count(), 1)
    
        # Repeated access should reuse existing payment
        self.login()
        response = self.client.get(url, follow=True)
        self.assertContains(response, "Payment Summary")
        # Logged-in user should not see this
        self.assertNotContains(response, "By performing the payment, you accept our")
        self.assertNotContains(response, "Billing information")
        self.assertEqual(invoice.draft_payment_set.count(), 1)
    
        # Pay
        payment = invoice.draft_payment_set.get()
        payment_url = payment.get_payment_url()
>       self.client.post(payment_url, {"method": "pay"})

weblate_web/invoices/tests.py:342: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:1153: in post
    response = super().post(
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:499: in post
    return self.generic(
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:671: in generic
    return self.request(**r)
           ^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:1087: in request
    self.check_exception(response)
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../django/test/client.py:802: in check_exception
    raise exc_value
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/handlers/exception.py:55: in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/handlers/base.py:198: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../views/generic/base.py:106: in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:441: in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../views/generic/base.py:145: in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../views/generic/edit.py:151: in post
    return self.form_valid(form)
           ^^^^^^^^^^^^^^^^^^^^^
weblate_web/views.py:484: in form_valid
    backend.complete(self.request)
weblate_web/payments/backends.py:359: in complete
    self.success()
weblate_web/payments/backends.py:458: in success
    self.send_notification("payment_completed")
weblate_web/payments/backends.py:441: in send_notification
    self.payment.customer.send_notification(
weblate_web/payments/models.py:318: in send_notification
    ContentFile(email.message().as_bytes()),
                ^^^^^^^^^^^^^^^
.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:318: in message
    self._add_attachments(msg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.core.mail.message.EmailMultiAlternatives object at 0x7f7fd339c590>
msg = <email.message.EmailMessage object at 0x7f7fd1ff0fe0>

    def _add_attachments(self, msg):
        if self.attachments:
            if hasattr(self, "mixed_subtype"):
                # RemovedInDjango70Warning.
>               raise AttributeError(
                    "EmailMessage no longer supports the"
                    " undocumented `mixed_subtype` attribute"
                )
E               AttributeError: EmailMessage no longer supports the undocumented `mixed_subtype` attribute

.../hostedtoolcache/Python/3.12.12..................................../x64/lib/python3.12.../core/mail/message.py:440: AttributeError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@renovate renovate bot force-pushed the renovate/django-6.x branch 23 times, most recently from 4a2e620 to a11cf9d Compare December 11, 2025 20:14
@renovate renovate bot force-pushed the renovate/django-6.x branch 4 times, most recently from a04bce1 to 5303c83 Compare December 12, 2025 22:42
@renovate renovate bot force-pushed the renovate/django-6.x branch 10 times, most recently from a966068 to 8692232 Compare December 24, 2025 07:04
@renovate renovate bot force-pushed the renovate/django-6.x branch 10 times, most recently from 0fe449a to 226750f Compare January 2, 2026 21:06
@renovate renovate bot force-pushed the renovate/django-6.x branch 6 times, most recently from c5ed0b2 to 4a0c597 Compare January 6, 2026 07:25
@renovate
Copy link
Contributor Author

renovate bot commented Jan 31, 2026

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@github-actions
Copy link

github-actions bot commented Mar 3, 2026

This pull request has been automatically marked as stale because there wasn’t any recent activity.

It will be closed soon if no further action occurs.

Thank you for your contributions!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Third-party library dependencies. wontfix Nobody will work on this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants