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,12 +1,10 @@
|
||||
import uuid
|
||||
from datetime import datetime, timezone
|
||||
|
||||
import pytest
|
||||
from fastapi import status
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.auth.dependencies import get_current_user
|
||||
from app.routers.groups import router as groups_router
|
||||
from app.utils.database import get_db
|
||||
|
||||
# Import mocks and fixtures
|
||||
@@ -15,7 +13,11 @@ from tests.utils.auth_test_fixtures import (
|
||||
db_session,
|
||||
non_admin_user_client,
|
||||
)
|
||||
from tests.utils.db_mocks import MockChannelDB, MockGroup, SQLiteUUID
|
||||
from tests.utils.db_mocks import (
|
||||
MockChannelDB,
|
||||
MockGroup,
|
||||
create_mock_priorities_and_group,
|
||||
)
|
||||
|
||||
# --- Test Cases For Group Creation ---
|
||||
|
||||
@@ -188,6 +190,43 @@ def test_update_group_forbidden_for_non_admin(
|
||||
# --- Test Cases For Delete Group ---
|
||||
|
||||
|
||||
def test_delete_all_groups_success(db_session, admin_user_client):
|
||||
"""Test reset groups endpoint"""
|
||||
# Create test data
|
||||
group1_id = create_mock_priorities_and_group(db_session, [], "Group A")
|
||||
group2_id = create_mock_priorities_and_group(db_session, [], "Group B")
|
||||
|
||||
# Add channel to group2
|
||||
channel_data = [
|
||||
{
|
||||
"group-title": "Group A",
|
||||
"tvg_id": "channel1.tv",
|
||||
"name": "Channel One",
|
||||
"url": ["http://test.com", "http://example.com"],
|
||||
}
|
||||
]
|
||||
admin_user_client.post("/channels/bulk-upload", json=channel_data)
|
||||
|
||||
# Reset groups
|
||||
response = admin_user_client.delete("/groups")
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["deleted"] == 1 # Only group2 should be deleted
|
||||
assert response.json()["skipped"] == 1 # group1 has channels
|
||||
|
||||
# Verify group2 deleted, group1 remains
|
||||
assert (
|
||||
db_session.query(MockGroup).filter(MockGroup.id == group1_id).first()
|
||||
is not None
|
||||
)
|
||||
assert db_session.query(MockGroup).filter(MockGroup.id == group2_id).first() is None
|
||||
|
||||
|
||||
def test_delete_all_groups_forbidden_for_non_admin(db_session, non_admin_user_client):
|
||||
"""Test reset groups requires admin role"""
|
||||
response = non_admin_user_client.delete("/groups")
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
|
||||
|
||||
def test_delete_group_success(db_session: Session, admin_user_client):
|
||||
# Create group
|
||||
group_id = uuid.uuid4()
|
||||
|
||||
Reference in New Issue
Block a user