Лучший способ подделать конечную точку 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
.