[test] test of lib.acl

This commit is contained in:
Maxime Alves LIRMM 2021-05-28 22:13:48 +02:00
parent a0c41d7d78
commit 0e5a8ede9d
1 changed files with 37 additions and 0 deletions

37
tests/test_acl.py Normal file
View File

@ -0,0 +1,37 @@
import pytest
from starlette.responses import PlainTextResponse
from starlette.testclient import TestClient
from halfapi.lib.routes import route_acl_decorator
from halfapi.lib import acl
def test_acl_Check(dummy_app, token_debug_false_builder):
"""
A request with ?check should always return a 200 status code
"""
@route_acl_decorator(params=[{'acl':acl.public}])
async def test_route_public(request, **kwargs):
raise Exception('Should not raise')
return PlainTextResponse('ok')
dummy_app.add_route('/test_public', test_route_public)
test_client = TestClient(dummy_app)
resp = test_client.get('/test_public?check')
assert resp.status_code == 200
@route_acl_decorator(params=[{'acl':acl.private}])
async def test_route_private(request, **kwargs):
raise Exception('Should not raise')
return PlainTextResponse('ok')
dummy_app.add_route('/test_private', test_route_private)
test_client = TestClient(dummy_app)
resp = test_client.get('/test_private')
assert resp.status_code == 401
resp = test_client.get('/test_private?check')
assert resp.status_code == 200