Fix htmx_middleware tests

This commit is contained in:
2026-05-12 11:01:48 +02:00
parent 393476be85
commit d9fe99963a
2 changed files with 12 additions and 4 deletions
+6 -1
View File
@@ -1,5 +1,6 @@
import json
from django.conf import settings
from django.contrib import messages as django_messages
from django.contrib.messages import constants as message_constants
@@ -33,7 +34,11 @@ class HTMXMessagesMiddleware:
if "HX-Redirect" in response:
return response
messages = list(django_messages.get_messages(request))
min_level = message_constants.DEBUG if settings.DEBUG else message_constants.INFO
backend = django_messages.get_messages(request)
if hasattr(backend, '_set_level') and backend._get_level() > min_level:
backend._set_level(min_level)
messages = list(backend)
if not messages:
return response
+6 -3
View File
@@ -8,7 +8,7 @@ django.setup()
from django.contrib.messages import constants as message_constants
from django.contrib.messages.storage.fallback import FallbackStorage
from django.http import HttpRequest, HttpResponse
from django.test import TestCase
from django.test import TestCase, override_settings
from games.htmx_middleware import HTMXMessagesMiddleware
@@ -24,7 +24,7 @@ class HtmxDetails:
class HTMXMessagesMiddlewareTest(TestCase):
def _build_request(self, htmx=True):
def _build_request(self, htmx=True, message_level=None):
"""Build a request with FallbackStorage message backend."""
request = HttpRequest()
request.method = "GET"
@@ -33,6 +33,8 @@ class HTMXMessagesMiddlewareTest(TestCase):
request.session = {}
storage = FallbackStorage(request)
if message_level is not None:
storage._set_level(message_level)
request._messages = storage
if htmx:
@@ -109,9 +111,10 @@ class HTMXMessagesMiddlewareTest(TestCase):
data = json.loads(response["HX-Trigger"])
self.assertEqual(data["show-toast"]["type"], "warning")
@override_settings(DEBUG=True)
def test_debug_message_maps_to_debug(self):
"""Debug messages should map to 'debug' toast type."""
request = self._build_request(htmx=True)
request = self._build_request(htmx=True, message_level=message_constants.DEBUG)
request._messages.add(message_constants.DEBUG, "Debug info")
middleware = HTMXMessagesMiddleware(get_response_ok)