Макет нескольких строк функции для модульных тестов
У меня есть следующая функция, для которой я хотел бы написать модульные тесты.
def fetch_latest_topics(request):
username = request.META['username']
try:
client = create_discourse_connection(username)
response = client.latest_topics()
topic_list = response['topic_list']['topics']
filtered_topics_data = []
for topic in topic_list:
filtered_topics_data.append(
{
"title": topic["title"],
"created_at": topic["created_at"],
"topic_id": topic["id"]
}
)
except Exception as e:
return sendResponse(formatErrorResponse(badreq_err, str(e)))
return sendResponse({"post_replies": filtered_topics_data})
Я хочу высмеять следующие строки
client = create_discourse_connection(username)
response = client.latest_topics()
По сути, в этих строках я создам соединение с внешним сервером и получу некоторый ответ. Я не хочу делать это в модульном тесте (поскольку это библиотека, она будет протестирована заранее, и тестирование не входит в обязанности моего кода). Мне просто нужно передать макет ответа json и проверить форматирование ответа и ключи в моем модульном тесте.
Я изучил библиотеку mock для высмеивания функций, но это скорее библиотека и это вызов метода, а не простая функция. Будет очень полезно, если кто-нибудь подскажет мне направление для проверки этого. Спасибо, что уделили время этому вопросу.