Folgendes können Sie tun, wenn Sie Ihre eigene Middleware testen möchten, sich aber auf eine andere Middleware verlassen möchten.
Im Allgemeinen scheint es beim Testen von Middleware wichtig zu sein, eine Instanz von Middleware zu erstellen und die Methode "process_request" aufzurufen. Siehe: Unit Testing Django Middleware - Adam Donaghy - Medium
Die obige Methode kann jedoch nicht für eine Middleware verwendet werden, die davon ausgeht, dass in einer anderen Middleware etwas ausgeführt wird. Im Fall von Middleware, die Authentifizierungsinformationen verarbeitet, ist es beispielsweise möglich, dass das Attribut "Benutzer" nicht vorhanden ist und beim Verweisen auf "request.user" eine Ausnahme auftritt, es sei denn, es wird sitzungsbezogene Middleware durchlaufen.
self.client.get ()
ausführen (ähnlich wie beim Testen von View)Middleware
class SampleMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
#Mach verschiedene Dinge
return self.get_response(request)
def fake_init(self, _):
def get_response(request):
return HttpResponse()
self.get_response = get_response
class SampleMiddlewareTest(TestCase):
def setUp(self):
self.mock_init = mock.patch.object(
AuthMiddleware, "__init__", fake_init
).start()
self.addCleanup(mock.patch.stopall)
def test_Verschiedene Tests(self):
#Anfrage
self.client.get("/")
#behaupten
__init__
in Python - George Shuklin - MediumRecommended Posts