"""Testing module for Handelsblatt RSS API.""" from unittest.mock import Mock, patch from aki_prj23_transparenzregister.models.news import News from aki_prj23_transparenzregister.utils.data_extraction.news.handelsblatt import ( HandelsblattRSS, ) def test_init() -> None: api = HandelsblattRSS() assert api is not None assert api.base_url == "https://www.handelsblatt.com/contentexport/feed" @patch( "aki_prj23_transparenzregister.utils.data_extraction.news.handelsblatt.requests.get" ) def test_get_news_for_category_error(mock_requests_get: Mock) -> None: mock_requests_get.return_value = Mock(ok=False) api = HandelsblattRSS() assert api.get_news_for_category() is None @patch( "aki_prj23_transparenzregister.utils.data_extraction.news.handelsblatt.requests.get" ) @patch( "aki_prj23_transparenzregister.utils.data_extraction.news.handelsblatt.HandelsblattRSS.__get_news_details_text__" ) def test_get_news_for_category(mock_get_details: Mock, mock_requests_get: Mock) -> None: mock_get_details.return_value = ( "Es war einmal vor langer Zeit, in einer weit, weit entfernten Galaxis..." ) mock_response = """ test Test Fri, 10 Nov 2023 09:10:27 +0100 https://www.handelsblatt.com/test test Test Fri, 10 Nov 2023 09:10:27 +0100 https://www.handelsblatt.com/test """ mock_requests_get.return_value = Mock(ok=True, text=mock_response) api = HandelsblattRSS() assert api.get_news_for_category() == [ News( id="test", title="Test", date="2023-11-10T09:10:27+0100", source_url="https://www.handelsblatt.com/test", text="Es war einmal vor langer Zeit, in einer weit, weit entfernten Galaxis...", ), News( id="test", title="Test", date="2023-11-10T09:10:27+0100", source_url="https://www.handelsblatt.com/test", text="Es war einmal vor langer Zeit, in einer weit, weit entfernten Galaxis...", ), ] @patch( "aki_prj23_transparenzregister.utils.data_extraction.news.handelsblatt.webdriver.Chrome" ) def test_get_news_details_text(mock_driver: Mock) -> None: mock_response = """

Hallo Welt.

Dies ist ein Text.

""" mock_driver.return_value = Mock(page_source=mock_response) api = HandelsblattRSS() assert api.__get_news_details_text__("test") == "Hallo Welt. Dies ist ein Text."