async def test_logging_when_process_json_result_reports_error(hass, mock_json): """Tests call to logger.info() when process_json_result reports an error.""" mock_coordinator = YahooSymbolUpdateCoordinator([TEST_SYMBOL], hass, DEFAULT_SCAN_INTERVAL) mock_response = Mock() mock_response.json = AsyncMock(return_value=mock_json) mock_coordinator.websession.get = AsyncMock(return_value=mock_response) mock_coordinator.process_json_result = Mock(return_value=(True, None)) with patch.object(coordinator, "_LOGGER") as mock_logger: await mock_coordinator.async_refresh() await hass.async_block_till_done() # There is one info() call from _async_update and one more conditionally assert mock_logger.info.call_count == 2
def test_process_json_result(hass, symbols, result, expected_error_encountered, expected_conversion_count): """No update is performed if update_interval is None.""" mock_coordinator = YahooSymbolUpdateCoordinator(symbols, hass, None) def prefix_conversion_symbol(symbol: str, symbol_data: any): return f"USD{symbol}" mock_fix_conversion_symbol = Mock(side_effect=prefix_conversion_symbol) mock_coordinator.fix_conversion_symbol = mock_fix_conversion_symbol (error_encountered, data) = mock_coordinator.process_json_result(result) assert len( mock_fix_conversion_symbol.mock_calls) == expected_conversion_count assert error_encountered is expected_error_encountered assert data is not None