コード例 #1
0
async def test_json_download_failure(hass, raised_exception):
    """Existing data is not updated if exception enocuntered while downloading json."""

    coordinator = YahooSymbolUpdateCoordinator([TEST_SYMBOL], hass,
                                               DEFAULT_SCAN_INTERVAL)
    coordinator.websession.get = AsyncMock(side_effect=raised_exception)

    existing_data = {TEST_SYMBOL: {DATA_REGULAR_MARKET_PRICE: random.random()}}
    coordinator.data = existing_data

    await coordinator.async_refresh()
    await hass.async_block_till_done()

    assert coordinator.data is existing_data
    assert coordinator.last_update_success is False
コード例 #2
0
async def test_incomplete_json(hass, parsed_json, message):
    """Existing data is not updated if JSON is invalid."""

    print(message)
    coordinator = YahooSymbolUpdateCoordinator(None, hass, DEFAULT_SCAN_INTERVAL)
    coordinator.get_json = AsyncMock(return_value=parsed_json)

    existing_data = {TEST_SYMBOL: {DATA_REGULAR_MARKET_PRICE: random.random()}}
    coordinator.data = existing_data

    # last_update_success is initially True
    assert coordinator.last_update_success is True

    await coordinator.async_refresh()
    await hass.async_block_till_done()

    # Data was invalid, existing data was left unchanged and last_update_success becomes False
    assert coordinator.data is existing_data
    assert coordinator.last_update_success is False
コード例 #3
0
async def test_json_download_failure(hass, raised_exception):
    """Existing data is not updated if exception enocuntered while downloading json."""

    mock_coordinator = YahooSymbolUpdateCoordinator([TEST_SYMBOL], hass,
                                                    DEFAULT_SCAN_INTERVAL)
    mock_coordinator.websession.get = AsyncMock(side_effect=raised_exception)

    existing_data = {TEST_SYMBOL: {DATA_REGULAR_MARKET_PRICE: random.random()}}
    mock_coordinator.data = existing_data

    mock_coordinator_listener = Mock()
    mock_coordinator.async_add_listener(mock_coordinator_listener)

    with patch.object(mock_coordinator,
                      "_schedule_refresh") as mock_schedule_refresh:

        await mock_coordinator.async_refresh()
        await hass.async_block_till_done()

        assert mock_coordinator.data is existing_data
        assert mock_coordinator.last_update_success is False

        assert len(mock_coordinator_listener.mock_calls) == 1
        assert len(mock_schedule_refresh.mock_calls) == 1