Use hass_client_no_auth test fixture in integrations s-x (#55585)
This commit is contained in:
parent
acdddabe1f
commit
bfd799dc04
13 changed files with 60 additions and 56 deletions
|
@ -395,7 +395,7 @@ async def test_abort_cloud_flow_if_local_device_exists(hass):
|
||||||
|
|
||||||
|
|
||||||
async def test_full_user_flow(
|
async def test_full_user_flow(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Check full flow."""
|
"""Check full flow."""
|
||||||
assert await setup.async_setup_component(
|
assert await setup.async_setup_component(
|
||||||
|
@ -422,7 +422,7 @@ async def test_full_user_flow(
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
||||||
|
|
|
@ -34,7 +34,7 @@ async def test_abort_if_existing_entry(hass):
|
||||||
|
|
||||||
|
|
||||||
async def test_full_flow(
|
async def test_full_flow(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Check full flow."""
|
"""Check full flow."""
|
||||||
assert await setup.async_setup_component(
|
assert await setup.async_setup_component(
|
||||||
|
@ -67,7 +67,7 @@ async def test_full_flow(
|
||||||
f"&state={state}"
|
f"&state={state}"
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
||||||
|
|
|
@ -42,7 +42,7 @@ async def test_zeroconf_abort_if_existing_entry(hass):
|
||||||
|
|
||||||
|
|
||||||
async def test_full_flow(
|
async def test_full_flow(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Check a full flow."""
|
"""Check a full flow."""
|
||||||
assert await setup.async_setup_component(
|
assert await setup.async_setup_component(
|
||||||
|
@ -78,7 +78,7 @@ async def test_full_flow(
|
||||||
"user-top-read,user-read-playback-position,user-read-recently-played,user-follow-read"
|
"user-top-read,user-read-playback-position,user-read-recently-played,user-follow-read"
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
||||||
|
@ -114,7 +114,7 @@ async def test_full_flow(
|
||||||
|
|
||||||
|
|
||||||
async def test_abort_if_spotify_error(
|
async def test_abort_if_spotify_error(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Check Spotify errors causes flow to abort."""
|
"""Check Spotify errors causes flow to abort."""
|
||||||
await setup.async_setup_component(
|
await setup.async_setup_component(
|
||||||
|
@ -138,7 +138,7 @@ async def test_abort_if_spotify_error(
|
||||||
"redirect_uri": "https://example.com/auth/external/callback",
|
"redirect_uri": "https://example.com/auth/external/callback",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
|
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
|
@ -162,7 +162,7 @@ async def test_abort_if_spotify_error(
|
||||||
|
|
||||||
|
|
||||||
async def test_reauthentication(
|
async def test_reauthentication(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Test Spotify reauthentication."""
|
"""Test Spotify reauthentication."""
|
||||||
await setup.async_setup_component(
|
await setup.async_setup_component(
|
||||||
|
@ -199,7 +199,7 @@ async def test_reauthentication(
|
||||||
"redirect_uri": "https://example.com/auth/external/callback",
|
"redirect_uri": "https://example.com/auth/external/callback",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
|
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
|
@ -229,7 +229,7 @@ async def test_reauthentication(
|
||||||
|
|
||||||
|
|
||||||
async def test_reauth_account_mismatch(
|
async def test_reauth_account_mismatch(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Test Spotify reauthentication with different account."""
|
"""Test Spotify reauthentication with different account."""
|
||||||
await setup.async_setup_component(
|
await setup.async_setup_component(
|
||||||
|
@ -264,7 +264,7 @@ async def test_reauth_account_mismatch(
|
||||||
"redirect_uri": "https://example.com/auth/external/callback",
|
"redirect_uri": "https://example.com/auth/external/callback",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
|
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
|
|
|
@ -41,7 +41,7 @@ async def test_abort_if_no_configuration(hass):
|
||||||
|
|
||||||
|
|
||||||
async def test_full_flow_implementation(
|
async def test_full_flow_implementation(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Test registering an integration and finishing flow works."""
|
"""Test registering an integration and finishing flow works."""
|
||||||
await setup_component(hass)
|
await setup_component(hass)
|
||||||
|
@ -75,7 +75,7 @@ async def test_full_flow_implementation(
|
||||||
"&tenant_id=eneco&issuer=identity.toon.eu"
|
"&tenant_id=eneco&issuer=identity.toon.eu"
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
||||||
|
@ -105,7 +105,7 @@ async def test_full_flow_implementation(
|
||||||
|
|
||||||
|
|
||||||
async def test_no_agreements(
|
async def test_no_agreements(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Test abort when there are no displays."""
|
"""Test abort when there are no displays."""
|
||||||
await setup_component(hass)
|
await setup_component(hass)
|
||||||
|
@ -125,7 +125,7 @@ async def test_no_agreements(
|
||||||
result["flow_id"], {"implementation": "eneco"}
|
result["flow_id"], {"implementation": "eneco"}
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
"https://api.toon.eu/token",
|
"https://api.toon.eu/token",
|
||||||
|
@ -145,7 +145,7 @@ async def test_no_agreements(
|
||||||
|
|
||||||
|
|
||||||
async def test_multiple_agreements(
|
async def test_multiple_agreements(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Test abort when there are no displays."""
|
"""Test abort when there are no displays."""
|
||||||
await setup_component(hass)
|
await setup_component(hass)
|
||||||
|
@ -165,7 +165,7 @@ async def test_multiple_agreements(
|
||||||
result["flow_id"], {"implementation": "eneco"}
|
result["flow_id"], {"implementation": "eneco"}
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
|
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
|
@ -195,7 +195,7 @@ async def test_multiple_agreements(
|
||||||
|
|
||||||
|
|
||||||
async def test_agreement_already_set_up(
|
async def test_agreement_already_set_up(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Test showing display form again if display already exists."""
|
"""Test showing display form again if display already exists."""
|
||||||
await setup_component(hass)
|
await setup_component(hass)
|
||||||
|
@ -216,7 +216,7 @@ async def test_agreement_already_set_up(
|
||||||
result["flow_id"], {"implementation": "eneco"}
|
result["flow_id"], {"implementation": "eneco"}
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
"https://api.toon.eu/token",
|
"https://api.toon.eu/token",
|
||||||
|
@ -236,7 +236,7 @@ async def test_agreement_already_set_up(
|
||||||
|
|
||||||
|
|
||||||
async def test_toon_abort(
|
async def test_toon_abort(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Test we abort on Toon error."""
|
"""Test we abort on Toon error."""
|
||||||
await setup_component(hass)
|
await setup_component(hass)
|
||||||
|
@ -255,7 +255,7 @@ async def test_toon_abort(
|
||||||
result["flow_id"], {"implementation": "eneco"}
|
result["flow_id"], {"implementation": "eneco"}
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
"https://api.toon.eu/token",
|
"https://api.toon.eu/token",
|
||||||
|
@ -289,7 +289,7 @@ async def test_import(hass, current_request_with_host):
|
||||||
|
|
||||||
|
|
||||||
async def test_import_migration(
|
async def test_import_migration(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Test if importing step with migration works."""
|
"""Test if importing step with migration works."""
|
||||||
old_entry = MockConfigEntry(domain=DOMAIN, unique_id=123, version=1)
|
old_entry = MockConfigEntry(domain=DOMAIN, unique_id=123, version=1)
|
||||||
|
@ -317,7 +317,7 @@ async def test_import_migration(
|
||||||
flows[0]["flow_id"], {"implementation": "eneco"}
|
flows[0]["flow_id"], {"implementation": "eneco"}
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
"https://api.toon.eu/token",
|
"https://api.toon.eu/token",
|
||||||
|
|
|
@ -28,7 +28,7 @@ def mock_dev_track(mock_device_tracker_conf):
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(name="client")
|
@pytest.fixture(name="client")
|
||||||
async def traccar_client(loop, hass, aiohttp_client):
|
async def traccar_client(loop, hass, hass_client_no_auth):
|
||||||
"""Mock client for Traccar (unauthenticated)."""
|
"""Mock client for Traccar (unauthenticated)."""
|
||||||
assert await async_setup_component(hass, "persistent_notification", {})
|
assert await async_setup_component(hass, "persistent_notification", {})
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ async def traccar_client(loop, hass, aiohttp_client):
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
with patch("homeassistant.components.device_tracker.legacy.update_config"):
|
with patch("homeassistant.components.device_tracker.legacy.update_config"):
|
||||||
return await aiohttp_client(hass.http.app)
|
return await hass_client_no_auth()
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
|
|
|
@ -5,7 +5,7 @@ from homeassistant.config import async_process_ha_core_config
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
|
|
||||||
|
|
||||||
async def test_config_flow_registers_webhook(hass, aiohttp_client):
|
async def test_config_flow_registers_webhook(hass, hass_client_no_auth):
|
||||||
"""Test setting up Twilio and sending webhook."""
|
"""Test setting up Twilio and sending webhook."""
|
||||||
await async_process_ha_core_config(
|
await async_process_ha_core_config(
|
||||||
hass,
|
hass,
|
||||||
|
@ -29,7 +29,7 @@ async def test_config_flow_registers_webhook(hass, aiohttp_client):
|
||||||
|
|
||||||
hass.bus.async_listen(twilio.RECEIVED_DATA, handle_event)
|
hass.bus.async_listen(twilio.RECEIVED_DATA, handle_event)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
await client.post(f"/api/webhook/{webhook_id}", data={"hello": "twilio"})
|
await client.post(f"/api/webhook/{webhook_id}", data={"hello": "twilio"})
|
||||||
|
|
||||||
assert len(twilio_events) == 1
|
assert len(twilio_events) == 1
|
||||||
|
|
|
@ -17,7 +17,7 @@ async def setup_http(hass):
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
|
||||||
async def test_webhook_json(hass, aiohttp_client):
|
async def test_webhook_json(hass, hass_client_no_auth):
|
||||||
"""Test triggering with a JSON webhook."""
|
"""Test triggering with a JSON webhook."""
|
||||||
events = []
|
events = []
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ async def test_webhook_json(hass, aiohttp_client):
|
||||||
)
|
)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
|
|
||||||
await client.post("/api/webhook/json_webhook", json={"hello": "world"})
|
await client.post("/api/webhook/json_webhook", json={"hello": "world"})
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
@ -56,7 +56,7 @@ async def test_webhook_json(hass, aiohttp_client):
|
||||||
assert events[0].data["id"] == 0
|
assert events[0].data["id"] == 0
|
||||||
|
|
||||||
|
|
||||||
async def test_webhook_post(hass, aiohttp_client):
|
async def test_webhook_post(hass, hass_client_no_auth):
|
||||||
"""Test triggering with a POST webhook."""
|
"""Test triggering with a POST webhook."""
|
||||||
events = []
|
events = []
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ async def test_webhook_post(hass, aiohttp_client):
|
||||||
)
|
)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
|
|
||||||
await client.post("/api/webhook/post_webhook", data={"hello": "world"})
|
await client.post("/api/webhook/post_webhook", data={"hello": "world"})
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
@ -91,7 +91,7 @@ async def test_webhook_post(hass, aiohttp_client):
|
||||||
assert events[0].data["hello"] == "yo world"
|
assert events[0].data["hello"] == "yo world"
|
||||||
|
|
||||||
|
|
||||||
async def test_webhook_query(hass, aiohttp_client):
|
async def test_webhook_query(hass, hass_client_no_auth):
|
||||||
"""Test triggering with a query POST webhook."""
|
"""Test triggering with a query POST webhook."""
|
||||||
events = []
|
events = []
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ async def test_webhook_query(hass, aiohttp_client):
|
||||||
)
|
)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
|
|
||||||
await client.post("/api/webhook/query_webhook?hello=world")
|
await client.post("/api/webhook/query_webhook?hello=world")
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
@ -126,7 +126,7 @@ async def test_webhook_query(hass, aiohttp_client):
|
||||||
assert events[0].data["hello"] == "yo world"
|
assert events[0].data["hello"] == "yo world"
|
||||||
|
|
||||||
|
|
||||||
async def test_webhook_reload(hass, aiohttp_client):
|
async def test_webhook_reload(hass, hass_client_no_auth):
|
||||||
"""Test reloading a webhook."""
|
"""Test reloading a webhook."""
|
||||||
events = []
|
events = []
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ async def test_webhook_reload(hass, aiohttp_client):
|
||||||
)
|
)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
|
|
||||||
await client.post("/api/webhook/post_webhook", data={"hello": "world"})
|
await client.post("/api/webhook/post_webhook", data={"hello": "world"})
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
|
@ -13,12 +13,12 @@ async def websocket_client(hass, hass_ws_client):
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
async def no_auth_websocket_client(hass, aiohttp_client):
|
async def no_auth_websocket_client(hass, hass_client_no_auth):
|
||||||
"""Websocket connection that requires authentication."""
|
"""Websocket connection that requires authentication."""
|
||||||
assert await async_setup_component(hass, "websocket_api", {})
|
assert await async_setup_component(hass, "websocket_api", {})
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
ws = await client.ws_connect(URL)
|
ws = await client.ws_connect(URL)
|
||||||
|
|
||||||
auth_ok = await ws.receive_json()
|
auth_ok = await ws.receive_json()
|
||||||
|
|
|
@ -121,14 +121,14 @@ async def test_auth_active_with_token(
|
||||||
assert auth_msg["type"] == TYPE_AUTH_OK
|
assert auth_msg["type"] == TYPE_AUTH_OK
|
||||||
|
|
||||||
|
|
||||||
async def test_auth_active_user_inactive(hass, aiohttp_client, hass_access_token):
|
async def test_auth_active_user_inactive(hass, hass_client_no_auth, hass_access_token):
|
||||||
"""Test authenticating with a token."""
|
"""Test authenticating with a token."""
|
||||||
refresh_token = await hass.auth.async_validate_access_token(hass_access_token)
|
refresh_token = await hass.auth.async_validate_access_token(hass_access_token)
|
||||||
refresh_token.user.is_active = False
|
refresh_token.user.is_active = False
|
||||||
assert await async_setup_component(hass, "websocket_api", {})
|
assert await async_setup_component(hass, "websocket_api", {})
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
|
|
||||||
async with client.ws_connect(URL) as ws:
|
async with client.ws_connect(URL) as ws:
|
||||||
auth_msg = await ws.receive_json()
|
auth_msg = await ws.receive_json()
|
||||||
|
@ -140,12 +140,12 @@ async def test_auth_active_user_inactive(hass, aiohttp_client, hass_access_token
|
||||||
assert auth_msg["type"] == TYPE_AUTH_INVALID
|
assert auth_msg["type"] == TYPE_AUTH_INVALID
|
||||||
|
|
||||||
|
|
||||||
async def test_auth_active_with_password_not_allow(hass, aiohttp_client):
|
async def test_auth_active_with_password_not_allow(hass, hass_client_no_auth):
|
||||||
"""Test authenticating with a token."""
|
"""Test authenticating with a token."""
|
||||||
assert await async_setup_component(hass, "websocket_api", {})
|
assert await async_setup_component(hass, "websocket_api", {})
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
|
|
||||||
async with client.ws_connect(URL) as ws:
|
async with client.ws_connect(URL) as ws:
|
||||||
auth_msg = await ws.receive_json()
|
auth_msg = await ws.receive_json()
|
||||||
|
@ -157,12 +157,14 @@ async def test_auth_active_with_password_not_allow(hass, aiohttp_client):
|
||||||
assert auth_msg["type"] == TYPE_AUTH_INVALID
|
assert auth_msg["type"] == TYPE_AUTH_INVALID
|
||||||
|
|
||||||
|
|
||||||
async def test_auth_legacy_support_with_password(hass, aiohttp_client, legacy_auth):
|
async def test_auth_legacy_support_with_password(
|
||||||
|
hass, hass_client_no_auth, legacy_auth
|
||||||
|
):
|
||||||
"""Test authenticating with a token."""
|
"""Test authenticating with a token."""
|
||||||
assert await async_setup_component(hass, "websocket_api", {})
|
assert await async_setup_component(hass, "websocket_api", {})
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
|
|
||||||
async with client.ws_connect(URL) as ws:
|
async with client.ws_connect(URL) as ws:
|
||||||
auth_msg = await ws.receive_json()
|
auth_msg = await ws.receive_json()
|
||||||
|
@ -174,12 +176,12 @@ async def test_auth_legacy_support_with_password(hass, aiohttp_client, legacy_au
|
||||||
assert auth_msg["type"] == TYPE_AUTH_INVALID
|
assert auth_msg["type"] == TYPE_AUTH_INVALID
|
||||||
|
|
||||||
|
|
||||||
async def test_auth_with_invalid_token(hass, aiohttp_client):
|
async def test_auth_with_invalid_token(hass, hass_client_no_auth):
|
||||||
"""Test authenticating with a token."""
|
"""Test authenticating with a token."""
|
||||||
assert await async_setup_component(hass, "websocket_api", {})
|
assert await async_setup_component(hass, "websocket_api", {})
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
|
|
||||||
async with client.ws_connect(URL) as ws:
|
async with client.ws_connect(URL) as ws:
|
||||||
auth_msg = await ws.receive_json()
|
auth_msg = await ws.receive_json()
|
||||||
|
|
|
@ -459,12 +459,14 @@ async def test_ping(websocket_client):
|
||||||
assert msg["type"] == "pong"
|
assert msg["type"] == "pong"
|
||||||
|
|
||||||
|
|
||||||
async def test_call_service_context_with_user(hass, aiohttp_client, hass_access_token):
|
async def test_call_service_context_with_user(
|
||||||
|
hass, hass_client_no_auth, hass_access_token
|
||||||
|
):
|
||||||
"""Test that the user is set in the service call context."""
|
"""Test that the user is set in the service call context."""
|
||||||
assert await async_setup_component(hass, "websocket_api", {})
|
assert await async_setup_component(hass, "websocket_api", {})
|
||||||
|
|
||||||
calls = async_mock_service(hass, "domain_test", "test_service")
|
calls = async_mock_service(hass, "domain_test", "test_service")
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
|
|
||||||
async with client.ws_connect(URL) as ws:
|
async with client.ws_connect(URL) as ws:
|
||||||
auth_msg = await ws.receive_json()
|
auth_msg = await ws.receive_json()
|
||||||
|
|
|
@ -7,14 +7,14 @@ from homeassistant.components.websocket_api.http import URL
|
||||||
from .test_auth import test_auth_active_with_token
|
from .test_auth import test_auth_active_with_token
|
||||||
|
|
||||||
|
|
||||||
async def test_websocket_api(hass, aiohttp_client, hass_access_token, legacy_auth):
|
async def test_websocket_api(hass, hass_client_no_auth, hass_access_token, legacy_auth):
|
||||||
"""Test API streams."""
|
"""Test API streams."""
|
||||||
await async_setup_component(
|
await async_setup_component(
|
||||||
hass, "sensor", {"sensor": {"platform": "websocket_api"}}
|
hass, "sensor", {"sensor": {"platform": "websocket_api"}}
|
||||||
)
|
)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
ws = await client.ws_connect(URL)
|
ws = await client.ws_connect(URL)
|
||||||
|
|
||||||
auth_ok = await ws.receive_json()
|
auth_ok = await ws.receive_json()
|
||||||
|
|
|
@ -23,7 +23,7 @@ async def test_abort_if_existing_entry(hass):
|
||||||
|
|
||||||
|
|
||||||
async def test_full_flow(
|
async def test_full_flow(
|
||||||
hass, aiohttp_client, aioclient_mock, current_request_with_host
|
hass, hass_client_no_auth, aioclient_mock, current_request_with_host
|
||||||
):
|
):
|
||||||
"""Check full flow."""
|
"""Check full flow."""
|
||||||
assert await setup.async_setup_component(
|
assert await setup.async_setup_component(
|
||||||
|
@ -54,7 +54,7 @@ async def test_full_flow(
|
||||||
f"&state={state}&scope={scope}"
|
f"&state={state}&scope={scope}"
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
||||||
|
|
|
@ -154,7 +154,7 @@ async def test_abort_if_oauth_error(
|
||||||
hass,
|
hass,
|
||||||
flow_handler,
|
flow_handler,
|
||||||
local_impl,
|
local_impl,
|
||||||
aiohttp_client,
|
hass_client_no_auth,
|
||||||
aioclient_mock,
|
aioclient_mock,
|
||||||
current_request_with_host,
|
current_request_with_host,
|
||||||
):
|
):
|
||||||
|
@ -191,7 +191,7 @@ async def test_abort_if_oauth_error(
|
||||||
f"&state={state}&scope=read+write"
|
f"&state={state}&scope=read+write"
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
||||||
|
@ -274,7 +274,7 @@ async def test_full_flow(
|
||||||
hass,
|
hass,
|
||||||
flow_handler,
|
flow_handler,
|
||||||
local_impl,
|
local_impl,
|
||||||
aiohttp_client,
|
hass_client_no_auth,
|
||||||
aioclient_mock,
|
aioclient_mock,
|
||||||
current_request_with_host,
|
current_request_with_host,
|
||||||
):
|
):
|
||||||
|
@ -311,7 +311,7 @@ async def test_full_flow(
|
||||||
f"&state={state}&scope=read+write"
|
f"&state={state}&scope=read+write"
|
||||||
)
|
)
|
||||||
|
|
||||||
client = await aiohttp_client(hass.http.app)
|
client = await hass_client_no_auth()
|
||||||
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
resp = await client.get(f"/auth/external/callback?code=abcd&state={state}")
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
assert resp.headers["content-type"] == "text/html; charset=utf-8"
|
||||||
|
|
Loading…
Add table
Reference in a new issue