Init Repo
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
"""
|
||||
Test that admins can access shot details
|
||||
"""
|
||||
import sys
|
||||
from sqlalchemy.orm import Session
|
||||
from database import SessionLocal, engine
|
||||
from models.user import User, UserRole
|
||||
from models.shot import Shot
|
||||
from models.episode import Episode
|
||||
from routers.shots import check_episode_access
|
||||
|
||||
def test_admin_access():
|
||||
"""Test that admin users can access any episode"""
|
||||
db: Session = SessionLocal()
|
||||
|
||||
try:
|
||||
# Get first episode
|
||||
episode = db.query(Episode).first()
|
||||
if not episode:
|
||||
print("No episodes found in database")
|
||||
return
|
||||
|
||||
print(f"Testing with Episode ID: {episode.id}, Project ID: {episode.project_id}")
|
||||
|
||||
# Get an admin user
|
||||
admin = db.query(User).filter(User.is_admin == True).first()
|
||||
if not admin:
|
||||
print("No admin user found")
|
||||
return
|
||||
|
||||
print(f"Testing with Admin: {admin.email}, Role: {admin.role}, is_admin: {admin.is_admin}")
|
||||
|
||||
# Test access
|
||||
try:
|
||||
result = check_episode_access(episode.id, admin, db)
|
||||
print(f"✓ SUCCESS: Admin can access episode {episode.id}")
|
||||
print(f" Episode name: {result.name if hasattr(result, 'name') else 'N/A'}")
|
||||
except Exception as e:
|
||||
print(f"✗ FAILED: {str(e)}")
|
||||
|
||||
# Test with coordinator
|
||||
coordinator = db.query(User).filter(User.role == UserRole.COORDINATOR).first()
|
||||
if coordinator:
|
||||
print(f"\nTesting with Coordinator: {coordinator.email}")
|
||||
try:
|
||||
result = check_episode_access(episode.id, coordinator, db)
|
||||
print(f"✓ SUCCESS: Coordinator can access episode {episode.id}")
|
||||
except Exception as e:
|
||||
print(f"✗ FAILED: {str(e)}")
|
||||
|
||||
# Test with artist (should fail if not project member)
|
||||
artist = db.query(User).filter(User.role == UserRole.ARTIST).first()
|
||||
if artist:
|
||||
print(f"\nTesting with Artist: {artist.email}")
|
||||
try:
|
||||
result = check_episode_access(episode.id, artist, db)
|
||||
print(f"✓ Artist can access episode {episode.id} (is project member)")
|
||||
except Exception as e:
|
||||
print(f"✓ Expected behavior: {str(e)}")
|
||||
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_admin_access()
|
||||
Reference in New Issue
Block a user