Лучший способ подделать конечную точку RSS-канала новостей в python?

В настоящее время я реализую функцию, которая извлекает данные из RSS-канала, анализирует их, вносит в них некоторые изменения и сохраняет в нашей базе данных. Я должен указать, что все это происходит в проекте Django.

Я извлекаю данные из RSS ленты с помощью библиотеки feedparser. Я также решил написать несколько тестов, чтобы убедиться, что лента новостей хорошо разбирается и что весь процесс (от извлечения и разбора данных до их изменения и сохранения в нашей базе данных) проходит успешно. В этих тестах мне даже удалось сгенерировать фиктивную RSS-ленту, используя Django's feedgenerator util.

Однако я не знаю, как эффективно имитировать конечную точку RSS-канала. Я пробовал использовать requests-mock, но безрезультатно. Я точно знаю, что feedparser использует urllib. Должен ли я поиздеваться над чем-то из urllib, чтобы заставить его работать? Или я должен запустить сервер в другом процессе, который принимает соединения и отвечает на все с имитацией RSS данных? (что-то сделанное с помощью make_server из этого примера).

Конечной целью для меня было бы иметь что-то вроде этого:

request_mocker.get(RSS_NEWS_FEED_URL, data=dummy_rss_data, status_code=200)

Поэтому, когда feedparser вызывает этот RSS_NEWS_FEED_URL, он получает dummy_rss_data.

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