Files
cetana-backend/apps/live_monitoring/tests.py
T
2026-09-24 12:32:59 +03:30

27 lines
1.0 KiB
Python

from django.test import TestCase
from apps.live_monitoring.models import Camera
from apps.live_monitoring.services import StreamAccessService
class StreamAccessTests(TestCase):
def setUp(self):
self.camera = Camera.objects.create(name="Cam1", stream_url="https://example.com/live.m3u8")
self.service = StreamAccessService()
def test_issue_and_verify_token(self):
token, exp = self.service.issue_token(self.camera)
payload = self.service.verify_token(token)
self.assertIsNotNone(payload)
self.assertEqual(payload["camera"], str(self.camera.id))
self.assertGreater(payload["exp"], exp - 1)
def test_tampered_token_rejected(self):
token, _ = self.service.issue_token(self.camera)
raw, _sig = token.split(".", 1)
self.assertIsNone(self.service.verify_token(raw + ".deadbeef"))
def test_expired_token_rejected(self):
token, _ = self.service.issue_token(self.camera, ttl=-1)
self.assertIsNone(self.service.verify_token(token))