Refactor tests for improved consistency and readability
- Updated test cases in `test_auth_endpoints.py` to ensure consistent formatting and style. - Enhanced `test_socket_endpoints.py` with consistent parameter formatting and improved readability. - Cleaned up `conftest.py` by ensuring consistent parameter formatting in fixtures. - Added comprehensive tests for API token dependencies in `test_api_token_dependencies.py`. - Refactored `test_auth_service.py` to maintain consistent parameter formatting. - Cleaned up `test_oauth_service.py` by removing unnecessary imports. - Improved `test_socket_service.py` with consistent formatting and readability. - Enhanced `test_cookies.py` by ensuring consistent formatting and readability. - Introduced new tests for token utilities in `test_token_utils.py` to validate token generation and expiration logic.
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
"""Tests for socket API endpoints."""
|
||||
|
||||
from unittest.mock import AsyncMock, patch
|
||||
|
||||
import pytest
|
||||
from httpx import AsyncClient
|
||||
from unittest.mock import AsyncMock, patch
|
||||
|
||||
from app.models.user import User
|
||||
|
||||
@@ -10,7 +11,7 @@ from app.models.user import User
|
||||
@pytest.fixture
|
||||
def mock_socket_manager():
|
||||
"""Mock socket manager for testing."""
|
||||
with patch('app.api.v1.socket.socket_manager') as mock:
|
||||
with patch("app.api.v1.socket.socket_manager") as mock:
|
||||
mock.get_connected_users.return_value = ["1", "2", "3"]
|
||||
mock.send_to_user = AsyncMock(return_value=True)
|
||||
mock.broadcast_to_all = AsyncMock()
|
||||
@@ -24,10 +25,10 @@ class TestSocketEndpoints:
|
||||
async def test_get_socket_status_authenticated(self, authenticated_client: AsyncClient, authenticated_user: User, mock_socket_manager):
|
||||
"""Test getting socket status for authenticated user."""
|
||||
response = await authenticated_client.get("/api/v1/socket/status")
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
|
||||
|
||||
assert "connected" in data
|
||||
assert "user_id" in data
|
||||
assert "total_connected" in data
|
||||
@@ -46,19 +47,19 @@ class TestSocketEndpoints:
|
||||
"""Test sending message to specific user successfully."""
|
||||
target_user_id = 2
|
||||
message = "Hello there!"
|
||||
|
||||
|
||||
response = await authenticated_client.post(
|
||||
"/api/v1/socket/send-message",
|
||||
params={"target_user_id": target_user_id, "message": message}
|
||||
params={"target_user_id": target_user_id, "message": message},
|
||||
)
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
|
||||
|
||||
assert data["success"] is True
|
||||
assert data["target_user_id"] == target_user_id
|
||||
assert data["message"] == "Message sent"
|
||||
|
||||
|
||||
# Verify socket manager was called correctly
|
||||
mock_socket_manager.send_to_user.assert_called_once_with(
|
||||
str(target_user_id),
|
||||
@@ -67,7 +68,7 @@ class TestSocketEndpoints:
|
||||
"from_user_id": authenticated_user.id,
|
||||
"from_user_name": authenticated_user.name,
|
||||
"message": message,
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -75,18 +76,18 @@ class TestSocketEndpoints:
|
||||
"""Test sending message to user who is not connected."""
|
||||
target_user_id = 999
|
||||
message = "Hello there!"
|
||||
|
||||
|
||||
# Mock user not connected
|
||||
mock_socket_manager.send_to_user.return_value = False
|
||||
|
||||
|
||||
response = await authenticated_client.post(
|
||||
"/api/v1/socket/send-message",
|
||||
params={"target_user_id": target_user_id, "message": message}
|
||||
params={"target_user_id": target_user_id, "message": message},
|
||||
)
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
|
||||
|
||||
assert data["success"] is False
|
||||
assert data["target_user_id"] == target_user_id
|
||||
assert data["message"] == "User not connected"
|
||||
@@ -96,7 +97,7 @@ class TestSocketEndpoints:
|
||||
"""Test sending message without authentication."""
|
||||
response = await client.post(
|
||||
"/api/v1/socket/send-message",
|
||||
params={"target_user_id": 1, "message": "test"}
|
||||
params={"target_user_id": 1, "message": "test"},
|
||||
)
|
||||
assert response.status_code == 401
|
||||
|
||||
@@ -104,18 +105,18 @@ class TestSocketEndpoints:
|
||||
async def test_broadcast_message_success(self, authenticated_client: AsyncClient, authenticated_user: User, mock_socket_manager):
|
||||
"""Test broadcasting message to all users successfully."""
|
||||
message = "Important announcement!"
|
||||
|
||||
|
||||
response = await authenticated_client.post(
|
||||
"/api/v1/socket/broadcast",
|
||||
params={"message": message}
|
||||
params={"message": message},
|
||||
)
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
|
||||
|
||||
assert data["success"] is True
|
||||
assert data["message"] == "Message broadcasted to all users"
|
||||
|
||||
|
||||
# Verify socket manager was called correctly
|
||||
mock_socket_manager.broadcast_to_all.assert_called_once_with(
|
||||
"broadcast_message",
|
||||
@@ -123,7 +124,7 @@ class TestSocketEndpoints:
|
||||
"from_user_id": authenticated_user.id,
|
||||
"from_user_name": authenticated_user.name,
|
||||
"message": message,
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -131,7 +132,7 @@ class TestSocketEndpoints:
|
||||
"""Test broadcasting message without authentication."""
|
||||
response = await client.post(
|
||||
"/api/v1/socket/broadcast",
|
||||
params={"message": "test"}
|
||||
params={"message": "test"},
|
||||
)
|
||||
assert response.status_code == 401
|
||||
|
||||
@@ -141,14 +142,14 @@ class TestSocketEndpoints:
|
||||
# Missing target_user_id
|
||||
response = await authenticated_client.post(
|
||||
"/api/v1/socket/send-message",
|
||||
params={"message": "test"}
|
||||
params={"message": "test"},
|
||||
)
|
||||
assert response.status_code == 422
|
||||
|
||||
|
||||
# Missing message
|
||||
response = await authenticated_client.post(
|
||||
"/api/v1/socket/send-message",
|
||||
params={"target_user_id": 1}
|
||||
params={"target_user_id": 1},
|
||||
)
|
||||
assert response.status_code == 422
|
||||
|
||||
@@ -163,7 +164,7 @@ class TestSocketEndpoints:
|
||||
"""Test sending message with invalid user ID."""
|
||||
response = await authenticated_client.post(
|
||||
"/api/v1/socket/send-message",
|
||||
params={"target_user_id": "invalid", "message": "test"}
|
||||
params={"target_user_id": "invalid", "message": "test"},
|
||||
)
|
||||
assert response.status_code == 422
|
||||
|
||||
@@ -172,14 +173,14 @@ class TestSocketEndpoints:
|
||||
"""Test that socket status correctly shows if user is connected."""
|
||||
# Test when user is connected
|
||||
mock_socket_manager.get_connected_users.return_value = [str(authenticated_user.id), "2", "3"]
|
||||
|
||||
|
||||
response = await authenticated_client.get("/api/v1/socket/status")
|
||||
data = response.json()
|
||||
assert data["connected"] is True
|
||||
|
||||
|
||||
# Test when user is not connected
|
||||
mock_socket_manager.get_connected_users.return_value = ["2", "3", "4"]
|
||||
|
||||
|
||||
response = await authenticated_client.get("/api/v1/socket/status")
|
||||
data = response.json()
|
||||
assert data["connected"] is False
|
||||
assert data["connected"] is False
|
||||
|
||||
Reference in New Issue
Block a user