Пример #1
0
async def test_stream_open_fails(hass):
    """Test failure on stream open."""
    stream = Stream(hass, STREAM_SOURCE, {})
    stream.add_provider(HLS_PROVIDER)
    with patch("av.open") as av_open:
        av_open.side_effect = av.error.InvalidDataError(-2, "error")
        segment_buffer = SegmentBuffer(hass, stream.outputs)
        stream_worker(STREAM_SOURCE, {}, segment_buffer, threading.Event())
        await hass.async_block_till_done()
        av_open.assert_called_once()
Пример #2
0
async def test_worker_log(hass, caplog):
    """Test that the worker logs the url without username and password."""
    stream = Stream(hass, "https://*****:*****@foo.bar", {})
    stream.add_provider(HLS_PROVIDER)
    with patch("av.open") as av_open:
        av_open.side_effect = av.error.InvalidDataError(-2, "error")
        segment_buffer = SegmentBuffer(hass, stream.outputs)
        stream_worker("https://*****:*****@foo.bar", {}, segment_buffer,
                      threading.Event())
        await hass.async_block_till_done()
    assert "https://*****:*****@foo.bar" not in caplog.text
    assert "https://****:****@foo.bar" in caplog.text
Пример #3
0
async def async_decode_stream(hass, packets, py_av=None):
    """Start a stream worker that decodes incoming stream packets into output segments."""
    stream = Stream(hass, STREAM_SOURCE, {})
    stream.add_provider(HLS_PROVIDER)

    if not py_av:
        py_av = MockPyAv()
    py_av.container.packets = iter(packets)  # Can't be rewound

    with patch("av.open", new=py_av.open), patch(
            "homeassistant.components.stream.core.StreamOutput.put",
            side_effect=py_av.capture_buffer.capture_output_segment,
    ):
        segment_buffer = SegmentBuffer(hass, stream.outputs)
        stream_worker(STREAM_SOURCE, {}, segment_buffer, threading.Event())
        await hass.async_block_till_done()

    return py_av.capture_buffer