Fix htmx_middleware tests
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib import messages as django_messages
|
from django.contrib import messages as django_messages
|
||||||
from django.contrib.messages import constants as message_constants
|
from django.contrib.messages import constants as message_constants
|
||||||
|
|
||||||
@@ -33,7 +34,11 @@ class HTMXMessagesMiddleware:
|
|||||||
if "HX-Redirect" in response:
|
if "HX-Redirect" in response:
|
||||||
return 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:
|
if not messages:
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ django.setup()
|
|||||||
from django.contrib.messages import constants as message_constants
|
from django.contrib.messages import constants as message_constants
|
||||||
from django.contrib.messages.storage.fallback import FallbackStorage
|
from django.contrib.messages.storage.fallback import FallbackStorage
|
||||||
from django.http import HttpRequest, HttpResponse
|
from django.http import HttpRequest, HttpResponse
|
||||||
from django.test import TestCase
|
from django.test import TestCase, override_settings
|
||||||
|
|
||||||
from games.htmx_middleware import HTMXMessagesMiddleware
|
from games.htmx_middleware import HTMXMessagesMiddleware
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ class HtmxDetails:
|
|||||||
|
|
||||||
|
|
||||||
class HTMXMessagesMiddlewareTest(TestCase):
|
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."""
|
"""Build a request with FallbackStorage message backend."""
|
||||||
request = HttpRequest()
|
request = HttpRequest()
|
||||||
request.method = "GET"
|
request.method = "GET"
|
||||||
@@ -33,6 +33,8 @@ class HTMXMessagesMiddlewareTest(TestCase):
|
|||||||
request.session = {}
|
request.session = {}
|
||||||
|
|
||||||
storage = FallbackStorage(request)
|
storage = FallbackStorage(request)
|
||||||
|
if message_level is not None:
|
||||||
|
storage._set_level(message_level)
|
||||||
request._messages = storage
|
request._messages = storage
|
||||||
|
|
||||||
if htmx:
|
if htmx:
|
||||||
@@ -109,9 +111,10 @@ class HTMXMessagesMiddlewareTest(TestCase):
|
|||||||
data = json.loads(response["HX-Trigger"])
|
data = json.loads(response["HX-Trigger"])
|
||||||
self.assertEqual(data["show-toast"]["type"], "warning")
|
self.assertEqual(data["show-toast"]["type"], "warning")
|
||||||
|
|
||||||
|
@override_settings(DEBUG=True)
|
||||||
def test_debug_message_maps_to_debug(self):
|
def test_debug_message_maps_to_debug(self):
|
||||||
"""Debug messages should map to 'debug' toast type."""
|
"""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")
|
request._messages.add(message_constants.DEBUG, "Debug info")
|
||||||
middleware = HTMXMessagesMiddleware(get_response_ok)
|
middleware = HTMXMessagesMiddleware(get_response_ok)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user