from django.test import TestCase
from unittest.mock import patch, MagicMock
from .tasks import convert_video_to_hls, delete_original_video

class VideoTasksTest(TestCase):
    @patch('subprocess.run')
    def test_convert_video_to_hls(self, mock_subprocess_run):
        """
        Tests whether the HLS conversion script is called correctly and the correct parameters are passed.
        """
        mock_subprocess_run.return_value = MagicMock()
        convert_video_to_hls('test/source.mp4', '1920x1080', 1)
        mock_subprocess_run.assert_called_once()
        self.assertIn('-i', mock_subprocess_run.call_args[0][0])
        self.assertIn('1920x1080', mock_subprocess_run.call_args[0][0])

    @patch('os.remove')
    def test_delete_original_video(self, mock_os_remove):
        """
        Checks whether the original video file is successfully deleted after conversion.
        """
        delete_original_video('test/source.mp4')
        mock_os_remove.assert_called_once_with('test/source.mp4')