コード例 #1
0
ファイル: test_pvpc.py プロジェクト: d1aboilik/aiopvpc
async def test_bad_downloads(
    available,
    day_str,
    num_log_msgs,
    status,
    exception,
    caplog,
):
    """Test data parsing of official API files."""
    day = datetime.fromisoformat(day_str)
    mock_session = MockAsyncSession(status=status, exc=exception)
    with caplog.at_level(logging.DEBUG):
        pvpc_data = PVPCData(
            local_timezone=REFERENCE_TZ,
            tariff="normal",
            websession=mock_session,
        )
        pvpc_data.source_available = available
        assert not pvpc_data.process_state_and_attributes(day)
        prices = await pvpc_data.async_update_prices(day)
        assert not prices
        assert not pvpc_data.process_state_and_attributes(day)
        assert len(caplog.messages) == num_log_msgs
    assert mock_session.call_count == 1
    assert len(prices) == 0
コード例 #2
0
ファイル: test_pvpc.py プロジェクト: d1aboilik/aiopvpc
async def test_price_extract(day_str, num_prices, num_calls, num_prices_8h,
                             available_8h):
    """Test data parsing of official API files."""
    day = datetime.fromisoformat(day_str)
    mock_session = MockAsyncSession()

    pvpc_data = PVPCData(
        local_timezone=_TZ_TEST,
        tariff="discrimination",
        websession=mock_session,
    )

    pvpc_data.source_available = True
    assert not pvpc_data.process_state_and_attributes(day)

    await pvpc_data.async_update_prices(day)
    has_prices = pvpc_data.process_state_and_attributes(day)
    assert len(pvpc_data._current_prices) == num_prices
    assert mock_session.call_count == num_calls
    assert has_prices

    has_prices = pvpc_data.process_state_and_attributes(day +
                                                        timedelta(hours=10))
    assert len(pvpc_data._current_prices) == num_prices_8h
    assert has_prices == available_8h