Files
remnawave-minishop/tests/test_panel_api_service_logging.py
T

52 lines
1.7 KiB
Python

import unittest
from types import SimpleNamespace
from unittest.mock import AsyncMock, patch
from bot.services.panel_api_service import PanelApiService
class PanelApiServiceLoggingTests(unittest.IsolatedAsyncioTestCase):
def _make_service(self) -> PanelApiService:
return PanelApiService(
SimpleNamespace(
PANEL_API_URL="https://panel.example.test/api",
PANEL_API_KEY="panel-key",
USER_HWID_DEVICE_LIMIT=None,
)
)
async def test_update_user_details_does_not_log_full_response_by_default(self):
service = self._make_service()
service._request = AsyncMock(return_value={"response": {"uuid": "user-uuid"}})
with patch("bot.services.panel_api_service.logging.info") as info_log:
result = await service.update_user_details_on_panel(
"user-uuid",
{"description": "profile"},
)
self.assertEqual(result, {"uuid": "user-uuid"})
service._request.assert_awaited_once_with(
"PATCH",
"/users",
json={"description": "profile", "uuid": "user-uuid"},
log_full_response=False,
)
info_log.assert_not_called()
async def test_update_user_details_can_still_request_full_response_logging(self):
service = self._make_service()
service._request = AsyncMock(return_value={"response": {"uuid": "user-uuid"}})
await service.update_user_details_on_panel(
"user-uuid",
{"description": "profile"},
log_response=True,
)
self.assertTrue(service._request.await_args.kwargs["log_full_response"])
if __name__ == "__main__":
unittest.main()