v2.0
This commit is contained in:
61
tests/helpers.py
Normal file
61
tests/helpers.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime, timedelta, timezone
|
||||
|
||||
from app.schemas.remnawave import RemnawaveUser
|
||||
|
||||
|
||||
def make_remote_user(
|
||||
*,
|
||||
user_uuid: str,
|
||||
user_id: int,
|
||||
short_uuid: str,
|
||||
username: str,
|
||||
telegram_id: int | None,
|
||||
expire_at: datetime | None = None,
|
||||
traffic_limit_bytes: int = 0,
|
||||
) -> RemnawaveUser:
|
||||
now = datetime.now(timezone.utc).replace(microsecond=0)
|
||||
expire = expire_at or (now + timedelta(days=30))
|
||||
|
||||
return RemnawaveUser.model_validate(
|
||||
{
|
||||
"uuid": user_uuid,
|
||||
"id": user_id,
|
||||
"shortUuid": short_uuid,
|
||||
"username": username,
|
||||
"status": "ACTIVE",
|
||||
"trafficLimitBytes": traffic_limit_bytes,
|
||||
"expireAt": expire.isoformat().replace("+00:00", "Z"),
|
||||
"telegramId": telegram_id,
|
||||
"email": None,
|
||||
"description": None,
|
||||
"tag": "BOT",
|
||||
"hwidDeviceLimit": None,
|
||||
"externalSquadUuid": None,
|
||||
"trojanPassword": f"trojan-{user_id}",
|
||||
"vlessUuid": f"00000000-0000-0000-0000-{user_id:012d}",
|
||||
"ssPassword": f"ss-{user_id}",
|
||||
"lastTriggeredThreshold": 0,
|
||||
"subRevokedAt": None,
|
||||
"subLastUserAgent": None,
|
||||
"subLastOpenedAt": None,
|
||||
"lastTrafficResetAt": None,
|
||||
"createdAt": now.isoformat().replace("+00:00", "Z"),
|
||||
"updatedAt": now.isoformat().replace("+00:00", "Z"),
|
||||
"subscriptionUrl": f"https://example.com/sub/{short_uuid}",
|
||||
"activeInternalSquads": [
|
||||
{
|
||||
"uuid": "11111111-1111-1111-1111-111111111111",
|
||||
"name": "VPN",
|
||||
}
|
||||
],
|
||||
"userTraffic": {
|
||||
"usedTrafficBytes": 0,
|
||||
"lifetimeUsedTrafficBytes": 0,
|
||||
"onlineAt": None,
|
||||
"firstConnectedAt": None,
|
||||
"lastConnectedNodeUuid": None,
|
||||
},
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user