Implemented bulk upload by passing a json structure. Added delete all channels, groups and priorities
All checks were successful
AWS Deploy on Push / build (push) Successful in 2m17s
All checks were successful
AWS Deploy on Push / build (push) Successful in 2m17s
This commit is contained in:
@@ -1,11 +1,9 @@
|
||||
import uuid
|
||||
from datetime import datetime, timezone
|
||||
|
||||
import pytest
|
||||
from fastapi import status
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.models.db import ChannelURL, Priority
|
||||
from app.routers.priorities import router as priorities_router
|
||||
|
||||
# Import fixtures and mocks
|
||||
@@ -14,7 +12,13 @@ from tests.utils.auth_test_fixtures import (
|
||||
db_session,
|
||||
non_admin_user_client,
|
||||
)
|
||||
from tests.utils.db_mocks import MockChannelDB, MockChannelURL, MockGroup, MockPriority
|
||||
from tests.utils.db_mocks import (
|
||||
MockChannelDB,
|
||||
MockChannelURL,
|
||||
MockGroup,
|
||||
MockPriority,
|
||||
create_mock_priorities_and_group,
|
||||
)
|
||||
|
||||
# --- Test Cases For Priority Creation ---
|
||||
|
||||
@@ -127,6 +131,44 @@ def test_get_priority_forbidden_for_non_admin(
|
||||
# --- Test Cases For Delete Priority ---
|
||||
|
||||
|
||||
def test_delete_all_priorities_success(db_session, admin_user_client):
|
||||
"""Test reset priorities endpoint"""
|
||||
# Create test data
|
||||
priorities = [(100, "High"), (200, "Medium"), (300, "Low")]
|
||||
for id, desc in priorities:
|
||||
db_session.add(MockPriority(id=id, description=desc))
|
||||
db_session.commit()
|
||||
|
||||
# Create channel using priority 100
|
||||
create_mock_priorities_and_group(db_session, [], "Test Group")
|
||||
channel_data = [
|
||||
{
|
||||
"group-title": "Test Group",
|
||||
"tvg_id": "test.tv",
|
||||
"name": "Test Channel",
|
||||
"urls": ["http://test.com"],
|
||||
}
|
||||
]
|
||||
admin_user_client.post("/channels/bulk-upload", json=channel_data)
|
||||
|
||||
# Delete all priorities
|
||||
response = admin_user_client.delete("/priorities")
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["deleted"] == 2 # Medium and Low priorities
|
||||
assert response.json()["skipped"] == 1 # High priority is in use
|
||||
|
||||
# Verify only priority 100 remains
|
||||
priorities = db_session.query(MockPriority).all()
|
||||
assert len(priorities) == 1
|
||||
assert priorities[0].id == 100
|
||||
|
||||
|
||||
def test_reset_priorities_forbidden_for_non_admin(db_session, non_admin_user_client):
|
||||
"""Test reset priorities requires admin role"""
|
||||
response = non_admin_user_client.delete("/priorities")
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
|
||||
|
||||
def test_delete_priority_success(db_session: Session, admin_user_client):
|
||||
# Create a test priority
|
||||
priority = MockPriority(id=100, description="To Delete")
|
||||
|
||||
Reference in New Issue
Block a user