mirror of
https://github.com/bellingcat/auto-archiver-api.git
synced 2026-06-12 21:48:35 +03:00
drops group info from default endpoint
This commit is contained in:
@@ -13,32 +13,6 @@ def test_endpoint_home(client_with_auth):
|
|||||||
assert "breakingChanges" in j
|
assert "breakingChanges" in j
|
||||||
assert "groups" not in j
|
assert "groups" not in j
|
||||||
|
|
||||||
|
|
||||||
@patch("app.web.endpoints.default.bearer_security", new_callable=AsyncMock)
|
|
||||||
@patch("app.web.endpoints.default.get_user_auth", new_callable=AsyncMock, return_value="test@example.com")
|
|
||||||
@patch("app.web.endpoints.default.crud.get_user_groups", return_value=["group1", "group2"])
|
|
||||||
def test_endpoint_home_with_groups(m1, m2, m3, client_with_auth):
|
|
||||||
r = client_with_auth.get("/")
|
|
||||||
assert r.status_code == 200
|
|
||||||
j = r.json()
|
|
||||||
assert "version" in j and j["version"] == VERSION
|
|
||||||
assert "breakingChanges" in j
|
|
||||||
assert "groups" in j
|
|
||||||
assert j["groups"] == ["group1", "group2"]
|
|
||||||
|
|
||||||
|
|
||||||
@patch("app.web.endpoints.default.bearer_security", new_callable=AsyncMock)
|
|
||||||
@patch("app.web.endpoints.default.get_user_auth", new_callable=AsyncMock, return_value="test@example.com")
|
|
||||||
@patch("app.web.endpoints.default.crud.get_user_groups", side_effect=Exception('mocked error'))
|
|
||||||
def test_endpoint_home_with_groups_exception(m1, m2, m3, client_with_auth): # mocks call that triggers an internal error
|
|
||||||
r = client_with_auth.get("/")
|
|
||||||
assert r.status_code == 200
|
|
||||||
j = r.json()
|
|
||||||
assert "version" in j and j["version"] == VERSION
|
|
||||||
assert "breakingChanges" in j
|
|
||||||
assert "groups" not in j
|
|
||||||
|
|
||||||
|
|
||||||
def test_endpoint_health(client_with_auth):
|
def test_endpoint_health(client_with_auth):
|
||||||
r = client_with_auth.get("/health")
|
r = client_with_auth.get("/health")
|
||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ def test_alembic(db_session):
|
|||||||
alembic.config.main(argv=['--raiseerr', 'upgrade', 'head'])
|
alembic.config.main(argv=['--raiseerr', 'upgrade', 'head'])
|
||||||
alembic.config.main(argv=['--raiseerr', 'downgrade', 'base'])
|
alembic.config.main(argv=['--raiseerr', 'downgrade', 'base'])
|
||||||
|
|
||||||
@patch("app.web.endpoints.default.crud.soft_delete_task", side_effect=Exception('mocked error'))
|
@patch("app.web.endpoints.url.crud.soft_delete_task", side_effect=Exception('mocked error'))
|
||||||
def test_logging_middleware(m1, client_with_auth):
|
def test_logging_middleware(m1, client_with_auth):
|
||||||
from app.web.utils.metrics import EXCEPTION_COUNTER
|
from app.web.utils.metrics import EXCEPTION_COUNTER
|
||||||
assert len(EXCEPTION_COUNTER.collect()[0].samples) == 0
|
assert len(EXCEPTION_COUNTER.collect()[0].samples) == 0
|
||||||
|
|||||||
@@ -1,29 +1,20 @@
|
|||||||
|
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from fastapi import APIRouter, Depends, Request, HTTPException
|
from fastapi import APIRouter, Depends, HTTPException
|
||||||
from fastapi.responses import FileResponse, JSONResponse
|
from fastapi.responses import FileResponse, JSONResponse
|
||||||
|
|
||||||
from app.web.config import VERSION, BREAKING_CHANGES
|
from app.web.config import VERSION, BREAKING_CHANGES
|
||||||
from app.shared.log import log_error
|
|
||||||
from app.web.db import crud
|
|
||||||
from app.shared.schemas import ActiveUser, UsageResponse
|
from app.shared.schemas import ActiveUser, UsageResponse
|
||||||
from app.web.db.user_state import UserState
|
from app.web.db.user_state import UserState
|
||||||
from app.web.security import get_user_auth, bearer_security, get_user_state
|
from app.web.security import get_user_state
|
||||||
from app.shared.user_groups import GroupInfo
|
from app.shared.user_groups import GroupInfo
|
||||||
|
|
||||||
default_router = APIRouter()
|
default_router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
@default_router.get("/")
|
@default_router.get("/")
|
||||||
async def home(request: Request):
|
async def home():
|
||||||
# TODO: maybe split into 2 routes: one non authenticated and one authenticated for the groups info only, necessary only for the extension
|
return JSONResponse({"version": VERSION, "breakingChanges": BREAKING_CHANGES})
|
||||||
status = {"version": VERSION, "breakingChanges": BREAKING_CHANGES}
|
|
||||||
try:
|
|
||||||
email = await get_user_auth(await bearer_security(request))
|
|
||||||
status["groups"] = crud.get_user_groups(email)
|
|
||||||
except HTTPException: pass # not authenticated is fine
|
|
||||||
except Exception as e: log_error(e)
|
|
||||||
return JSONResponse(status)
|
|
||||||
|
|
||||||
|
|
||||||
@default_router.get("/health")
|
@default_router.get("/health")
|
||||||
|
|||||||
Reference in New Issue
Block a user