def setup_manager(self, feed_data, max_entries=DEFAULT_MAX_ENTRIES): """Set up feed manager.""" events = [] @callback def record_event(event): """Add recorded event to set.""" events.append(event) self.hass.bus.listen(EVENT_FEEDREADER, record_event) # Loading raw data from fixture and plug in to data object as URL # works since the third-party feedparser library accepts a URL # as well as the actual data. data_file = self.hass.config.path(f"{feedreader.DOMAIN}.pickle") storage = StoredData(data_file) with patch("homeassistant.components.feedreader.track_time_interval" ) as track_method: manager = FeedManager(feed_data, DEFAULT_SCAN_INTERVAL, max_entries, self.hass, storage) # Can't use 'assert_called_once' here because it's not available # in Python 3.5 yet. track_method.assert_called_once_with(self.hass, mock.ANY, DEFAULT_SCAN_INTERVAL) # Artificially trigger update. self.hass.bus.fire(EVENT_HOMEASSISTANT_START) # Collect events. self.hass.block_till_done() return manager, events
def test_feed_parsing_failed(self, mock_parse): """Test feed where parsing fails.""" data_file = self.hass.config.path(f"{feedreader.DOMAIN}.pickle") storage = StoredData(data_file) manager = FeedManager("FEED DATA", DEFAULT_SCAN_INTERVAL, DEFAULT_MAX_ENTRIES, self.hass, storage) # Artificially trigger update. self.hass.bus.fire(EVENT_HOMEASSISTANT_START) # Collect events. self.hass.block_till_done() assert manager.last_update_successful is False