Gibt es eine Möglichkeit, einem RequestFactory-Anforderungsobjekt eine User-Agent-Zeichenfolge hinzuzufügen? Ich habe den folgenden Test:HTTP_USER_AGENT zu Django RequestFactory Anfrage hinzufügen?
def test_homepage(self):
request = self.factory.get(reverse('home'))
response = views.home_page(request)
self.assertEqual(response.status_code, 200)
Das Problem ist, dass die home_page Ansicht, die eine Funktion aufruft, die request.META [ "HTTP_USER_AGENT"] erfordert. Als Ergebnis löst der obige Test einen KeyError aus, weil er nicht weiß, was HTTP_USER_AGENT ist. Gibt es eine Möglichkeit, es dem Anfrageobjekt des RF hinzuzufügen? Ich weiß, dass ich es hinzufügen kann, wenn ich Djangos Client-Objekt verwende, aber ich würde diesen Weg lieber nicht gehen, da ich alle Middleware-Beteiligung in meinem Test eliminieren möchte.
Vielen Dank.
Da die Dokumentation Show tut (und ich habe über einen zweiten Test mir bewiesen), arbeitet Ihr Vorschlag, wenn man die Test-Client-Klasse verwendet. Sie erhalten jedoch weiterhin den KeyError, den ich beschrieben habe, wenn Sie ein RequestFactory-Objekt verwenden. – William
@Robert, ich habe mich selbst getestet. Es funktioniert sowohl für Client, RequestFactory.get. – falsetru
@Robert, BTW, ich habe Django 1.5.1 benutzt. – falsetru