From be95359a80b57b2daf5270c1597303d639c48a19 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Fri, 16 Dec 2022 09:40:54 -0800 Subject: [PATCH] ds_client for test_permissions.py, refs #1959 --- tests/test_permissions.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/tests/test_permissions.py b/tests/test_permissions.py index d39b0634..730f672a 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -355,21 +355,24 @@ def test_query_list_respects_view_query(): ], ) def test_permissions_checked(app_client, path, permissions): + # Needs file-backed app_client for /fixtures.db app_client.ds._permission_checks.clear() response = app_client.get(path) - assert response.status in (200, 403) + assert response.status_code in (200, 403) assert_permissions_checked(app_client.ds, permissions) -def test_permissions_debug(app_client): - app_client.ds._permission_checks.clear() - assert app_client.get("/-/permissions").status == 403 +@pytest.mark.ds_client +@pytest.mark.asyncio +async def test_permissions_debug(ds_client): + ds_client.ds._permission_checks.clear() + assert (await ds_client.get("/-/permissions")).status_code == 403 # With the cookie it should work - cookie = app_client.actor_cookie({"id": "root"}) - response = app_client.get("/-/permissions", cookies={"ds_actor": cookie}) - assert response.status == 200 + cookie = ds_client.actor_cookie({"id": "root"}) + response = await ds_client.get("/-/permissions", cookies={"ds_actor": cookie}) + assert response.status_code == 200 # Should show one failure and one success - soup = Soup(response.body, "html.parser") + soup = Soup(response.text, "html.parser") check_divs = soup.findAll("div", {"class": "check"}) checks = [ { @@ -392,6 +395,8 @@ def test_permissions_debug(app_client): ] +@pytest.mark.ds_client +@pytest.mark.asyncio @pytest.mark.parametrize( "actor,allow,expected_fragment", [ @@ -401,11 +406,11 @@ def test_permissions_debug(app_client): ('{"id":"root"}', '"*"}', "Allow JSON error"), ], ) -def test_allow_debug(app_client, actor, allow, expected_fragment): - response = app_client.get( +async def test_allow_debug(ds_client, actor, allow, expected_fragment): + response = await ds_client.get( "/-/allow-debug?" + urllib.parse.urlencode({"actor": actor, "allow": allow}) ) - assert 200 == response.status + assert response.status_code == 200 assert expected_fragment in response.text