test_admin_service.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. """
  2. Tests for the Admin Service.
  3. """
  4. import pytest
  5. from unittest.mock import Mock
  6. from web.services.admin import AdminService
  7. class TestAdminService:
  8. """Test suite for AdminService business logic."""
  9. @pytest.mark.asyncio
  10. async def test_verify_token_success(self):
  11. """Test successful token verification."""
  12. admin_service = AdminService(admin_token="valid-token")
  13. result = await admin_service.verify_admin_token("valid-token")
  14. assert result is True
  15. @pytest.mark.asyncio
  16. async def test_verify_token_failure(self):
  17. """Test token verification with incorrect token."""
  18. admin_service = AdminService(admin_token="valid-token")
  19. result = await admin_service.verify_admin_token("invalid-token")
  20. assert result is False
  21. @pytest.mark.asyncio
  22. async def test_refresh_versions_success(self, mock_versions_manager):
  23. """Test successful refresh of version metadata."""
  24. admin_service = AdminService(
  25. admin_token="some-token",
  26. versions_manager=mock_versions_manager
  27. )
  28. remotes = await admin_service.refresh_versions()
  29. assert len(remotes) == 2
  30. assert "test-remote-1" in remotes
  31. assert "test-remote-2" in remotes
  32. mock_versions_manager.refresh_all.assert_called_once()
  33. mock_versions_manager.get_all_remotes_info.assert_called_once()
  34. @pytest.mark.asyncio
  35. async def test_refresh_versions_empty_result(self):
  36. """Test refresh when no remotes are configured."""
  37. mock_fetcher = Mock()
  38. mock_fetcher.refresh_all = Mock()
  39. mock_fetcher.get_all_remotes_info = Mock(return_value=[])
  40. admin_service = AdminService(
  41. admin_token="some-token",
  42. versions_manager=mock_fetcher
  43. )
  44. remotes = await admin_service.refresh_versions()
  45. assert len(remotes) == 0
  46. mock_fetcher.refresh_all.assert_called_once()