Как подражать и тестировать представление django, включая вызов внешнего api
Я хочу протестировать представление django, которое включает вызов внешнего API. Вызов API обернут другим пакетом (jira). При вызове представления создается тикет jira для проекта (модели). Как мне правильно протестировать представление, предотвратив при этом вызов внешнего API. Представление выглядит следующим образом:
class RequestHelp(View):
def get(self, context, pk=None, **response_kwargs):
# get the project to create the ticket for
project = Project.objects.get(id=pk)
# initialize the jira client
jira = JIRA(
server=settings.JIRA_URL,
basic_auth=(settings.JIRA_USERNAME, settings.JIRA_PASS),
)
# create the ticket in jira
new_issue = jira.create_issue(
project=settings.JIRA_PROJECT,
summary= project.title ,
description="Would you please be so nice and help me",
reporter={"name": "My User"},
issuetype={"name": "An Issue"},
)
return HttpResponseRedirect("/")
На данный момент тест выглядит следующим образом:
class TestRequestHelp(TestCase):
@classmethod
def setUpTestData(cls):
cls.std_user = User.objects.create_user(
username="john",
email="john@doe.de",
password="secret",
is_staff=False,
is_superuser=True,
)
def test_get_help_logged_in(self):
self.client.login(username="john", password="secret")
project, status = Project.objects.get_or_create(title="Test")
response = self.client.get(f"/project/help/{project.pk}", follow=True)
self.assertEqual(200, response.status_code)
"Обычный" тест представления работает, но всегда создает тикет, что нежелательно. Любая помощь в этом вопросе будет принята с благодарностью.