コード例 #1
0
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
コード例 #2
0
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