async def test_start_stop(client): url = "https://foo.bar/" request = respx.add("GET", url, status_code=202) assert respx.stats.call_count == 0 try: respx.start() response = await client.get(url) assert request.called is True assert response.status_code == 202 assert response.text == "" assert respx.stats.call_count == 1 respx.stop(clear=False, reset=False) assert len(respx.mock.patterns) == 1 assert respx.stats.call_count == 1 assert request.called is True respx.reset() assert len(respx.mock.patterns) == 1 assert respx.stats.call_count == 0 assert request.called is False respx.clear() assert len(respx.mock.patterns) == 0 except Exception: # pragma: nocover respx.stop() # Cleanup global state on error, to not affect other tests raise
async def test_start_stop(client): url = "https://start.stop/" request = respx.get(url) % 202 try: respx.start() response = await client.get(url) assert request.called is True assert response.status_code == 202 assert response.text == "" assert respx.calls.call_count == 1 respx.stop(clear=False, reset=False) assert len(respx.routes) == 1 assert respx.calls.call_count == 1 assert request.called is True respx.reset() assert len(respx.routes) == 1 assert respx.calls.call_count == 0 assert request.called is False respx.clear() assert len(respx.routes) == 0 finally: # pragma: nocover respx.stop( ) # Cleanup global state on error, to not affect other tests
async def test_setup_with_exception(hass): """Test setup with exception.""" respx.get("http://localhost", status_code=200, content="{}") assert await async_setup_component( hass, "binary_sensor", { "binary_sensor": { "platform": "rest", "resource": "http://localhost", "method": "GET", "value_template": "{{ value_json.dog }}", "name": "foo", "verify_ssl": "true", "timeout": 30, } }, ) await hass.async_block_till_done() assert len(hass.states.async_all()) == 1 state = hass.states.get("binary_sensor.foo") assert state.state == STATE_OFF await async_setup_component(hass, "homeassistant", {}) await hass.async_block_till_done() respx.clear() respx.get("http://localhost", content=httpx.RequestError(message="any", request=Mock())) await hass.services.async_call( "homeassistant", "update_entity", {ATTR_ENTITY_ID: ["binary_sensor.foo"]}, blocking=True, ) await hass.async_block_till_done() state = hass.states.get("binary_sensor.foo") assert state.state == STATE_UNAVAILABLE
async def test_setup_with_exception(opp): """Test setup with exception.""" respx.get("http://localhost").respond(status_code=200, json={}) assert await async_setup_component( opp, "binary_sensor", { "binary_sensor": { "platform": "rest", "resource": "http://localhost", "method": "GET", "value_template": "{{ value_json.dog }}", "name": "foo", "verify_ssl": "true", "timeout": 30, } }, ) await opp.async_block_till_done() assert len(opp.states.async_all()) == 1 state = opp.states.get("binary_sensor.foo") assert state.state == STATE_OFF await async_setup_component(opp, "openpeerpower", {}) await opp.async_block_till_done() respx.clear() respx.get("http://localhost").mock(side_effect=httpx.RequestError) await opp.services.async_call( "openpeerpower", "update_entity", {ATTR_ENTITY_ID: ["binary_sensor.foo"]}, blocking=True, ) await opp.async_block_till_done() state = opp.states.get("binary_sensor.foo") assert state.state == STATE_UNAVAILABLE