Я пишу автоматический тест в Django, чтобы проверить, работает ли веб-крючок над приложением. Тест отправляет пакет JSON в webhook и проверяет, что вызов был зарегистрирован в базе данных. Однако проблема, с которой я сталкиваюсь, состоит в том, что тест вызывает URL-адрес http://localhost, и поэтому данные сохраняются в моей локальной базе данных разработчиков, а не во временной базе данных, созданной в ходе теста. Так что теперь у меня нет возможности проверить, был ли получен вызов.
Какое для этого правильное решение?
from django.test import TestCase
import requests
from monzo.models import Transaction, RequestLog
class WebhookChecks(TestCase):
fixtures = ['db.json', ]
def test_simple_expense(self):
my_json = '{"type": "transaction.created", REMOVED FOR SECURITY }'
url = 'http://localhost/some_url/webhook/'
headers = {'Content-Type': 'application/json'}
r = requests.post(url, data=my_json, headers=headers)
if not "200" in str(r):
print("Something didn't work out. Error: "+str(r))
self.assertTrue("200" in str(r))