Tak, właśnie zacząłem używać makiety z projektem Django. Próbuję wyśmiewać część widoku, która wysyła żądanie do zdalnego interfejsu API, aby potwierdzić, że żądanie subskrypcji było autentyczne (forma weryfikacji zgodnie ze specyfikacją, do której pracuję).Python mock, django i wnioski
Co mam podobny:
class SubscriptionView(View):
def post(self, request, **kwargs):
remote_url = request.POST.get('remote_url')
if remote_url:
response = requests.get(remote_url, params={'verify': 'hello'})
if response.status_code != 200:
return HttpResponse('Verification of request failed')
Co ja teraz chce zrobić jest użycie makiety wyśmiewać się z połączenia requests.get
zmienić odpowiedź, ale nie mogę dowiedzieć się, jak to zrobić dla dekorator łat. Pomyślałem, że zrobiłeś coś takiego:
@patch(requests.get)
def test_response_verify(self):
# make a call to the view using self.app.post (WebTest),
# requests.get makes a suitable fake response from the mock object
Jak to osiągnąć?
Deadset przy użyciu mocks? Istnieje również django.test.client.RequestFactory - https://docs.djangoproject.com/en/1.5/topics/testing/advanced/#module-django.test.client – David
Tylko dla przyszłych widzów, osoba przesłuchująca chciała drwić out zewnętrznego wywołania API. Nie wezwanie do samego widoku. Mocks wydają się bardzo rozsądne w tej sytuacji. – aychedee
Zgodnie z @yychedee to jest rzeczywiście to, do czego dążyłem przy tym pytaniu. – jvc26