68 lines
1.8 KiB
Python

from http import HTTPStatus
from typing import Callable
import pytest
import requests
from fixtures import dev, types
USER_ADMIN_NAME = "admin"
USER_ADMIN_EMAIL = "admin@integration.test"
USER_ADMIN_PASSWORD = "password"
@pytest.fixture(name="create_user_admin", scope="package")
def create_user_admin(
signoz: types.SigNoz, request: pytest.FixtureRequest, pytestconfig: pytest.Config
) -> types.Operation:
def create() -> None:
response = requests.post(
signoz.self.host_configs["8080"].get("/api/v1/register"),
json={
"name": USER_ADMIN_NAME,
"orgId": "",
"orgName": "",
"email": USER_ADMIN_EMAIL,
"password": USER_ADMIN_PASSWORD,
},
timeout=5,
)
assert response.status_code == HTTPStatus.OK
return types.Operation(name="create_user_admin")
def delete(_: types.Operation) -> None:
pass
def restore(cache: dict) -> types.Operation:
return types.Operation(name=cache["name"])
return dev.wrap(
request,
pytestconfig,
"create_user_admin",
lambda: types.Operation(name=""),
create,
delete,
restore,
)
@pytest.fixture(name="get_jwt_token", scope="module")
def get_jwt_token(signoz: types.SigNoz) -> Callable[[str, str], str]:
def _get_jwt_token(email: str, password: str) -> str:
response = requests.post(
signoz.self.host_configs["8080"].get("/api/v1/login"),
json={
"email": email,
"password": password,
},
timeout=5,
)
assert response.status_code == HTTPStatus.OK
return response.json()["data"]["accessJwt"]
return _get_jwt_token