Макет нескольких строк функции для модульных тестов

У меня есть следующая функция, для которой я хотел бы написать модульные тесты.

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 для высмеивания функций, но это скорее библиотека и это вызов метода, а не простая функция. Будет очень полезно, если кто-нибудь подскажет мне направление для проверки этого. Спасибо, что уделили время этому вопросу.

Вернуться на верх