52 lines
1.7 KiB
Python
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()
|