Move assert_permissions_checked() calls from test_html.py to test_permissions.py, refs #811

This commit is contained in:
Simon Willison 2020-06-08 07:02:31 -07:00
commit cc218fa9be
3 changed files with 52 additions and 51 deletions

View file

@ -1,4 +1,4 @@
from .fixtures import make_app_client
from .fixtures import app_client, assert_permissions_checked, make_app_client
import pytest
@ -139,3 +139,53 @@ def test_query_list_respects_view_query():
"/fixtures", cookies={"ds_actor": client.ds.sign({"id": "root"}, "actor")}
)
assert html_fragment in auth_response.text
@pytest.mark.parametrize(
"path,permissions",
[
("/", ["view-instance"]),
("/fixtures", ["view-instance", ("view-database", "database", "fixtures")]),
(
"/fixtures/facetable/1",
["view-instance", ("view-table", "table", ("fixtures", "facetable"))],
),
(
"/fixtures/simple_primary_key",
[
"view-instance",
("view-database", "database", "fixtures"),
("view-table", "table", ("fixtures", "simple_primary_key")),
],
),
(
"/fixtures?sql=select+1",
[
"view-instance",
("view-database", "database", "fixtures"),
("execute-sql", "database", "fixtures"),
],
),
(
"/fixtures.db",
[
"view-instance",
("view-database", "database", "fixtures"),
("view-database-download", "database", "fixtures"),
],
),
(
"/fixtures/neighborhood_search",
[
"view-instance",
("view-database", "database", "fixtures"),
("view-query", "query", ("fixtures", "neighborhood_search")),
],
),
],
)
def test_permissions_checked(app_client, path, permissions):
app_client.ds._permission_checks.clear()
response = app_client.get(path)
assert response.status in (200, 403)
assert_permissions_checked(app_client.ds, permissions)