feat: Добавить тесты для HWIDUserController, включая методы получения, добавления и удаления HWID

This commit is contained in:
Artem 2025-05-08 15:53:31 +02:00
parent e45324075d
commit 44dfb1b010
No known key found for this signature in database
GPG key ID: 833485276B7902CE
3 changed files with 52 additions and 7 deletions

View file

@ -1,15 +1,14 @@
from typing import Annotated
from uuid import UUID
from rapid_api_client import PydanticBody
from remnawave_api.models import (
HWIDUserResponseDto,
HWIDUserResponseDtoList,
CreateHWIDUser,
HWIDDeleteRequest
)
from remnawave_api.rapid import AttributeBody, BaseController, post
from rapid_api_client import Path, PydanticBody
from remnawave_api.rapid import AttributeBody, BaseController, post, get
class HWIDUserController(BaseController):
@ -29,10 +28,10 @@ class HWIDUserController(BaseController):
"""Delete a user HWID device"""
...
@post("/hwid/devices/{uuid}", response_class=HWIDUserResponseDto)
@get("/hwid/devices/{uuid}", response_class=HWIDUserResponseDtoList)
async def get_hwid_user(
self,
uuid: Annotated[UUID, AttributeBody()],
) -> HWIDUserResponseDto:
uuid: Annotated[str, Path(description="UUID of the User")],
) -> HWIDUserResponseDtoList:
"""Get a user HWID device"""
...

View file

@ -14,7 +14,6 @@ REMNAWAVE_INBOUND_UUID = os.getenv("REMNAWAVE_INBOUND_UUID")
REMNAWAVE_USER_UUID = os.getenv("REMNAWAVE_USER_UUID")
REMNAWAVE_SHORT_UUID = os.getenv("REMNAWAVE_SHORT_UUID")
@pytest.fixture
async def remnawave() -> RemnawaveSDK:
assert REMNAWAVE_TOKEN
@ -42,4 +41,5 @@ async def remnawave() -> RemnawaveSDK:
assert sdk.users_bulk_actions is not None
assert sdk.users_stats is not None
assert sdk.xray_config is not None
assert sdk.hwid is not None
return sdk

46
tests/test_hwid.py Normal file
View file

@ -0,0 +1,46 @@
import random
import uuid
import pytest
from remnawave_api.models import (
HWIDDeleteRequest,
HWIDUserResponseDto,
HWIDUserResponseDtoList,
CreateHWIDUser
)
from tests.conftest import REMNAWAVE_USER_UUID
new_hwid = str(uuid.uuid4())
@pytest.mark.asyncio
async def test_get_hwid_user(remnawave):
hwid = await remnawave.hwid.get_hwid_user(uuid=REMNAWAVE_USER_UUID)
assert isinstance(hwid, HWIDUserResponseDtoList)
assert hwid.response is not None
@pytest.mark.asyncio
async def test_add_hwid_to_user(remnawave):
create_request = CreateHWIDUser(
hwid=new_hwid,
userUuid=REMNAWAVE_USER_UUID,
platform="Windows",
osVersion="10.0.19042",
deviceModel="Surface Pro",
userAgent="Mozilla/5.0"
)
response = await remnawave.hwid.add_hwid_to_users(body=create_request)
assert isinstance(response, HWIDUserResponseDtoList)
assert any(item.hwid == new_hwid for item in response.response)
@pytest.mark.asyncio
async def test_delete_hwid_user(remnawave):
delete_request = HWIDDeleteRequest(
hwid=new_hwid,
userUuid=REMNAWAVE_USER_UUID
)
response = await remnawave.hwid.delete_hwid_to_user(body=delete_request)
assert isinstance(response, HWIDUserResponseDtoList)
assert not any(item.hwid == new_hwid for item in response.response)