Skip to content

Commit 5b64eaa

Browse files
committed
Tests for group API
1 parent 94eb713 commit 5b64eaa

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

tests/biocommons/test_api.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from unittest.mock import ANY
2+
3+
import pytest
4+
import respx
5+
from httpx import Response
6+
from sqlmodel import select
7+
8+
from auth0.client import get_auth0_client
9+
from db.models import BiocommonsGroup
10+
from main import app
11+
from tests.biocommons.datagen import RoleFactory
12+
from tests.db.datagen import Auth0RoleFactory
13+
14+
15+
@pytest.fixture
16+
def override_auth0_client(auth0_client):
17+
app.dependency_overrides[get_auth0_client] = lambda: auth0_client
18+
yield
19+
app.dependency_overrides.clear()
20+
21+
22+
@respx.mock
23+
def test_create_group(test_client, as_admin_user, override_auth0_client, test_db_session):
24+
Auth0RoleFactory.__session__ = test_db_session
25+
# Mock Auth0 response to check group exists
26+
mock_group = RoleFactory.build(name="biocommons/group/tsi")
27+
route = respx.get("https://example.auth0.com/api/v2/roles", params={"name_filter": ANY}).mock(
28+
return_value=Response(200, json=[mock_group.model_dump(mode="json")])
29+
)
30+
31+
admin_role = Auth0RoleFactory.create_sync(name="biocommons/role/tsi/admin")
32+
resp = test_client.post(
33+
"/biocommons/groups/create",
34+
json={
35+
"group_id": "biocommons/group/tsi",
36+
"name": "Threatened Species Initiative",
37+
"admin_roles": [admin_role.name]
38+
}
39+
)
40+
print(resp.json())
41+
assert resp.status_code == 200
42+
assert route.called
43+
group_from_db = test_db_session.exec(select(BiocommonsGroup).where(BiocommonsGroup.group_id == "biocommons/group/tsi")).one()
44+
assert group_from_db.group_id == "biocommons/group/tsi"
45+
assert group_from_db.name == "Threatened Species Initiative"
46+
assert admin_role in group_from_db.admin_roles

0 commit comments

Comments
 (0)