Ejemplo n.º 1
0
async def test_stream_open_fails(hass):
    """Test failure on stream open."""
    stream = Stream(hass, STREAM_SOURCE)
    stream.add_provider(STREAM_OUTPUT_FORMAT)
    with patch("av.open") as av_open:
        av_open.side_effect = av.error.InvalidDataError(-2, "error")
        stream_worker(hass, stream, threading.Event())
        await hass.async_block_till_done()
        av_open.assert_called_once()
Ejemplo n.º 2
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()
Ejemplo n.º 3
0
def run_worker(hass, stream, stream_source, stream_settings=None):
    """Run the stream worker under test."""
    stream_state = StreamState(hass, stream.outputs, stream._diagnostics)
    stream_worker(
        stream_source,
        {},
        stream_settings or hass.data[DOMAIN][ATTR_SETTINGS],
        stream_state,
        KeyFrameConverter(hass),
        threading.Event(),
    )
Ejemplo n.º 4
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
Ejemplo n.º 5
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(STREAM_OUTPUT_FORMAT)

    if not py_av:
        py_av = MockPyAv()
    py_av.container.packets = packets

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

    return py_av.capture_buffer
Ejemplo n.º 6
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
Ejemplo n.º 7
0
def run_worker(hass, stream, stream_source):
    """Run the stream worker under test."""
    stream_state = StreamState(hass, stream.outputs, stream._diagnostics)
    stream_worker(stream_source, {}, stream_state, KeyFrameConverter(hass),
                  threading.Event())
Ejemplo n.º 8
0
def run_worker(hass, stream, stream_source):
    """Run the stream worker under test."""
    stream_state = StreamState(hass, stream.outputs)
    stream_worker(stream_source, {}, stream_state, threading.Event())