Refactor test files for improved readability and consistency
- Removed unnecessary blank lines and adjusted formatting in test files. - Ensured consistent use of commas in function calls and assertions across various test cases. - Updated import statements for better organization and clarity. - Enhanced mock setups in tests for better isolation and reliability. - Improved assertions to follow a consistent style for better readability.
This commit is contained in:
@@ -1,16 +1,14 @@
|
||||
"""Tests for VLC player API endpoints."""
|
||||
|
||||
from unittest.mock import AsyncMock, Mock, patch
|
||||
from unittest.mock import AsyncMock
|
||||
|
||||
import pytest
|
||||
from httpx import AsyncClient
|
||||
from fastapi import FastAPI
|
||||
from httpx import AsyncClient
|
||||
|
||||
from app.api.v1.sounds import get_credit_service, get_sound_repository, get_vlc_player
|
||||
from app.models.sound import Sound
|
||||
from app.models.user import User
|
||||
from app.api.v1.sounds import get_vlc_player, get_sound_repository, get_credit_service
|
||||
|
||||
|
||||
|
||||
|
||||
class TestVLCEndpoints:
|
||||
@@ -28,7 +26,7 @@ class TestVLCEndpoints:
|
||||
mock_vlc_service = AsyncMock()
|
||||
mock_repo = AsyncMock()
|
||||
mock_credit_service = AsyncMock()
|
||||
|
||||
|
||||
# Set up test data
|
||||
mock_sound = Sound(
|
||||
id=1,
|
||||
@@ -39,27 +37,27 @@ class TestVLCEndpoints:
|
||||
size=1024,
|
||||
hash="test_hash",
|
||||
)
|
||||
|
||||
|
||||
# Configure mocks
|
||||
mock_repo.get_by_id.return_value = mock_sound
|
||||
mock_credit_service.validate_and_reserve_credits.return_value = None
|
||||
mock_credit_service.deduct_credits.return_value = None
|
||||
mock_vlc_service.play_sound.return_value = True
|
||||
|
||||
|
||||
# Override dependencies
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
test_app.dependency_overrides[get_sound_repository] = lambda: mock_repo
|
||||
test_app.dependency_overrides[get_credit_service] = lambda: mock_credit_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_client.post("/api/v1/sounds/vlc/play/1")
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["sound_id"] == 1
|
||||
assert data["sound_name"] == "Test Sound"
|
||||
assert "Test Sound" in data["message"]
|
||||
|
||||
|
||||
# Verify service calls
|
||||
mock_repo.get_by_id.assert_called_once_with(1)
|
||||
mock_vlc_service.play_sound.assert_called_once_with(mock_sound)
|
||||
@@ -81,18 +79,18 @@ class TestVLCEndpoints:
|
||||
mock_vlc_service = AsyncMock()
|
||||
mock_repo = AsyncMock()
|
||||
mock_credit_service = AsyncMock()
|
||||
|
||||
|
||||
# Configure mocks
|
||||
mock_repo.get_by_id.return_value = None
|
||||
|
||||
|
||||
# Override dependencies
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
test_app.dependency_overrides[get_sound_repository] = lambda: mock_repo
|
||||
test_app.dependency_overrides[get_credit_service] = lambda: mock_credit_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_client.post("/api/v1/sounds/vlc/play/999")
|
||||
|
||||
|
||||
assert response.status_code == 404
|
||||
data = response.json()
|
||||
assert "Sound with ID 999 not found" in data["detail"]
|
||||
@@ -114,7 +112,7 @@ class TestVLCEndpoints:
|
||||
mock_vlc_service = AsyncMock()
|
||||
mock_repo = AsyncMock()
|
||||
mock_credit_service = AsyncMock()
|
||||
|
||||
|
||||
# Set up test data
|
||||
mock_sound = Sound(
|
||||
id=1,
|
||||
@@ -125,21 +123,21 @@ class TestVLCEndpoints:
|
||||
size=1024,
|
||||
hash="test_hash",
|
||||
)
|
||||
|
||||
|
||||
# Configure mocks
|
||||
mock_repo.get_by_id.return_value = mock_sound
|
||||
mock_credit_service.validate_and_reserve_credits.return_value = None
|
||||
mock_credit_service.deduct_credits.return_value = None
|
||||
mock_vlc_service.play_sound.return_value = False
|
||||
|
||||
|
||||
# Override dependencies
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
test_app.dependency_overrides[get_sound_repository] = lambda: mock_repo
|
||||
test_app.dependency_overrides[get_credit_service] = lambda: mock_credit_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_client.post("/api/v1/sounds/vlc/play/1")
|
||||
|
||||
|
||||
assert response.status_code == 500
|
||||
data = response.json()
|
||||
assert "Failed to launch VLC for sound playback" in data["detail"]
|
||||
@@ -161,18 +159,18 @@ class TestVLCEndpoints:
|
||||
mock_vlc_service = AsyncMock()
|
||||
mock_repo = AsyncMock()
|
||||
mock_credit_service = AsyncMock()
|
||||
|
||||
|
||||
# Configure mocks
|
||||
mock_repo.get_by_id.side_effect = Exception("Database error")
|
||||
|
||||
|
||||
# Override dependencies
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
test_app.dependency_overrides[get_sound_repository] = lambda: mock_repo
|
||||
test_app.dependency_overrides[get_credit_service] = lambda: mock_credit_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_client.post("/api/v1/sounds/vlc/play/1")
|
||||
|
||||
|
||||
assert response.status_code == 500
|
||||
data = response.json()
|
||||
assert "Failed to play sound" in data["detail"]
|
||||
@@ -209,13 +207,13 @@ class TestVLCEndpoints:
|
||||
"message": "Killed 3 VLC processes",
|
||||
}
|
||||
mock_vlc_service.stop_all_vlc_instances.return_value = mock_result
|
||||
|
||||
|
||||
# Override dependency
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_client.post("/api/v1/sounds/vlc/stop-all")
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["success"] is True
|
||||
@@ -223,7 +221,7 @@ class TestVLCEndpoints:
|
||||
assert data["processes_killed"] == 3
|
||||
assert data["processes_remaining"] == 0
|
||||
assert "Killed 3 VLC processes" in data["message"]
|
||||
|
||||
|
||||
# Verify service call
|
||||
mock_vlc_service.stop_all_vlc_instances.assert_called_once()
|
||||
finally:
|
||||
@@ -247,13 +245,13 @@ class TestVLCEndpoints:
|
||||
"message": "No VLC processes found",
|
||||
}
|
||||
mock_vlc_service.stop_all_vlc_instances.return_value = mock_result
|
||||
|
||||
|
||||
# Override dependency
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_client.post("/api/v1/sounds/vlc/stop-all")
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["success"] is True
|
||||
@@ -282,13 +280,13 @@ class TestVLCEndpoints:
|
||||
"message": "Killed 2 VLC processes",
|
||||
}
|
||||
mock_vlc_service.stop_all_vlc_instances.return_value = mock_result
|
||||
|
||||
|
||||
# Override dependency
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_client.post("/api/v1/sounds/vlc/stop-all")
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["success"] is True
|
||||
@@ -317,13 +315,13 @@ class TestVLCEndpoints:
|
||||
"message": "Failed to stop VLC processes",
|
||||
}
|
||||
mock_vlc_service.stop_all_vlc_instances.return_value = mock_result
|
||||
|
||||
|
||||
# Override dependency
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_client.post("/api/v1/sounds/vlc/stop-all")
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["success"] is False
|
||||
@@ -344,13 +342,13 @@ class TestVLCEndpoints:
|
||||
# Set up mock to raise an exception
|
||||
mock_vlc_service = AsyncMock()
|
||||
mock_vlc_service.stop_all_vlc_instances.side_effect = Exception("Service error")
|
||||
|
||||
|
||||
# Override dependency
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_client.post("/api/v1/sounds/vlc/stop-all")
|
||||
|
||||
|
||||
assert response.status_code == 500
|
||||
data = response.json()
|
||||
assert "Failed to stop VLC instances" in data["detail"]
|
||||
@@ -379,7 +377,7 @@ class TestVLCEndpoints:
|
||||
mock_vlc_service = AsyncMock()
|
||||
mock_repo = AsyncMock()
|
||||
mock_credit_service = AsyncMock()
|
||||
|
||||
|
||||
# Set up test data
|
||||
mock_sound = Sound(
|
||||
id=1,
|
||||
@@ -390,21 +388,21 @@ class TestVLCEndpoints:
|
||||
size=512,
|
||||
hash="admin_hash",
|
||||
)
|
||||
|
||||
|
||||
# Configure mocks
|
||||
mock_repo.get_by_id.return_value = mock_sound
|
||||
mock_credit_service.validate_and_reserve_credits.return_value = None
|
||||
mock_credit_service.deduct_credits.return_value = None
|
||||
mock_vlc_service.play_sound.return_value = True
|
||||
|
||||
|
||||
# Override dependencies
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service
|
||||
test_app.dependency_overrides[get_sound_repository] = lambda: mock_repo
|
||||
test_app.dependency_overrides[get_credit_service] = lambda: mock_credit_service
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_admin_client.post("/api/v1/sounds/vlc/play/1")
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["sound_name"] == "Admin Test Sound"
|
||||
@@ -424,17 +422,17 @@ class TestVLCEndpoints:
|
||||
"message": "Killed 1 VLC processes",
|
||||
}
|
||||
mock_vlc_service_2.stop_all_vlc_instances.return_value = mock_result
|
||||
|
||||
|
||||
# Override dependency for stop-all test
|
||||
test_app.dependency_overrides[get_vlc_player] = lambda: mock_vlc_service_2
|
||||
|
||||
|
||||
try:
|
||||
response = await authenticated_admin_client.post("/api/v1/sounds/vlc/stop-all")
|
||||
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["success"] is True
|
||||
assert data["processes_killed"] == 1
|
||||
finally:
|
||||
# Clean up dependency override
|
||||
test_app.dependency_overrides.pop(get_vlc_player, None)
|
||||
test_app.dependency_overrides.pop(get_vlc_player, None)
|
||||
|
||||
Reference in New Issue
Block a user