Пример #1
0
 def subtitle_url(self):
     backend = aws_backend.Backend()
     url = backend.subtitle_url('videoid', 'subid', 'uk')
     self.assertIsNotNone(url)
     self.assertIn('videoid', url)
     self.assertIn('subid', url)
     self.assertIn('uk', url)
Пример #2
0
    def test_delete_subtitle(self):
        backend = aws_backend.Backend()
        backend._s3_client = Mock(list_objects=Mock(return_value={}))
        backend.delete_subtitle('videoid', 'subid')

        backend.s3_client.list_objects.assert_any_call(
            Bucket='publics3bucket', Prefix='videos/videoid/subs/subid.')
Пример #3
0
    def test_start_transcoding_with_thumbnails(self):
        create_job_fixture = utils.load_json_fixture(
            "elastictranscoder_create_job.json"
        )
        backend = aws_backend.Backend()
        backend.get_src_file_key = Mock(
            return_value="videos/videoid/src/Some video file.mpg"
        )
        backend._elastictranscoder_client = Mock(
            create_job=Mock(return_value=create_job_fixture)
        )

        backend.start_transcoding("videoid")

        # SD + Thumbnails
        backend.elastictranscoder_client.create_job.assert_any_call(
            PipelineId="pipelineid",
            Input={"Key": "videos/videoid/src/Some video file.mpg"},
            Output={"PresetId": "sdpresetid", "Key": "videos/videoid/SD.mp4"},
        )

        # HD + Thumbnails
        backend.elastictranscoder_client.create_job.assert_any_call(
            PipelineId="pipelineid",
            Input={"Key": "videos/videoid/src/Some video file.mpg"},
            Output={
                "PresetId": "hdpresetid",
                "Key": "videos/videoid/HD.mp4",
                "ThumbnailPattern": "videos/videoid/thumbs/{count}",
            },
        )
Пример #4
0
 def subtitle_url(self):
     backend = aws_backend.Backend()
     url = backend.subtitle_url("videoid", "subid", "uk")
     self.assertIsNotNone(url)
     self.assertIn("videoid", url)
     self.assertIn("subid", url)
     self.assertIn("uk", url)
Пример #5
0
    def test_delete_thumbnail(self, mock_s3_client):
        backend = aws_backend.Backend()

        backend.delete_thumbnail('videoid', 'thumbid')

        mock_s3_client.delete_object.assert_called_once_with(
            Bucket="publics3bucket", Key="videos/videoid/thumbs/thumbid.jpg")
Пример #6
0
    def test_start_transcoding_with_thumbnails(self):
        create_job_fixture = utils.load_json_fixture(
            'elastictranscoder_create_job.json')
        backend = aws_backend.Backend()
        backend.get_src_file_key = Mock(
            return_value='videos/videoid/src/Some video file.mpg')
        backend._elastictranscoder_client = Mock(
            create_job=Mock(return_value=create_job_fixture), )

        backend.start_transcoding('videoid')

        # SD + Thumbnails
        backend.elastictranscoder_client.create_job.assert_any_call(
            PipelineId='pipelineid',
            Input={'Key': 'videos/videoid/src/Some video file.mpg'},
            Output={
                'PresetId': 'sdpresetid',
                'Key': 'videos/videoid/SD.mp4'
            },
        )

        # HD + Thumbnails
        backend.elastictranscoder_client.create_job.assert_any_call(
            PipelineId='pipelineid',
            Input={'Key': 'videos/videoid/src/Some video file.mpg'},
            Output={
                'PresetId': 'hdpresetid',
                'Key': 'videos/videoid/HD.mp4',
                'ThumbnailPattern': 'videos/videoid/thumbs/{count}'
            },
        )
Пример #7
0
    def test_delete_video_no_content(self):
        backend = aws_backend.Backend()
        backend._s3_client = Mock(list_objects=Mock(return_value={}))
        backend.delete_video('videoid')

        backend.s3_client.list_objects.assert_any_call(
            Bucket='privates3bucket', Prefix='videos/videoid/')
        backend.s3_client.list_objects.assert_any_call(
            Bucket='publics3bucket', Prefix='videos/videoid/')
Пример #8
0
    def test_iter_formats(self):
        backend = aws_backend.Backend()

        def head_object(Bucket=None, Key=None):
            if Key != "videos/videoid/HD.mp4":
                raise ClientError({"Error": {}}, "head_object")

        backend.s3_client.head_object = head_object
        formats = list(backend.iter_formats("videoid"))

        self.assertEqual([("HD", 256)], formats)
Пример #9
0
    def test_create_thumbnail(self, mock_s3_client, mock_resize_image):
        thumbnail_file = BytesIO(b"")
        mock_s3_client.get_object = Mock(return_value={'Body': thumbnail_file})
        backend = aws_backend.Backend()

        backend.create_thumbnail('videoid', 'thumbid')

        mock_s3_client.get_object.assert_called_once()
        self.assertEqual('videos/videoid/thumbs/00001.png',
                         mock_s3_client.get_object.call_args[1]['Key'])
        mock_resize_image.assert_called_once()
Пример #10
0
    def test_iter_formats(self):
        backend = aws_backend.Backend()

        def head_object(Bucket=None, Key=None):
            if Key != 'videos/videoid/HD.mp4':
                raise ClientError({'Error': {}}, 'head_object')

        backend.s3_client.head_object = head_object
        formats = list(backend.iter_formats('videoid'))

        self.assertEqual([('HD', 256)], formats)
Пример #11
0
    def test_create_thumbnail(self, mock_s3_client, mock_resize_image):
        thumbnail_file = BytesIO(b"")
        mock_s3_client.get_object = Mock(return_value={"Body": thumbnail_file})
        backend = aws_backend.Backend()

        backend.create_thumbnail("videoid", "thumbid")

        mock_s3_client.get_object.assert_called_once()
        self.assertEqual(
            "videos/videoid/thumbs/00001.png",
            mock_s3_client.get_object.call_args[1]["Key"],
        )
        mock_resize_image.assert_called_once()
Пример #12
0
    def test_transcoding_pipeline_compatibility(self):
        create_job_fixture = utils.load_json_fixture(
            'elastictranscoder_create_job.json')
        read_job_fixture = utils.load_json_fixture(
            'elastictranscoder_read_job_complete.json')
        backend = aws_backend.Backend()
        backend.get_src_file_key = Mock(
            return_value='videos/videoid/src/Some video file.mpg')
        backend._elastictranscoder_client = Mock(
            create_job=Mock(return_value=create_job_fixture),
            read_job=Mock(return_value=read_job_fixture))

        jobs = backend.start_transcoding('videoid')
        backend.check_progress(jobs[0])
Пример #13
0
    def test_check_progress(self):
        job = utils.load_json_fixture('elastictranscoder_create_job.json')
        read_job_fixture = utils.load_json_fixture(
            'elastictranscoder_read_job_complete.json')
        backend = aws_backend.Backend()
        backend._elastictranscoder_client = Mock(
            read_job=Mock(return_value=read_job_fixture), )

        progress, finished = backend.check_progress(job['Job'])
        self.assertEqual(100, progress)
        self.assertTrue(finished)
        backend.elastictranscoder_client.read_job.assert_called_once_with(
            Id='jobid'  # job id in test fixture
        )
Пример #14
0
    def test_upload_video(self):
        backend = aws_backend.Backend()
        backend._s3_client = Mock(put_object=Mock())
        file_object = Mock()
        file_object.name = "somevideo.mp4"

        backend.upload_video('videoid', file_object)

        backend.s3_client.put_object.assert_called_once()
        self.assertEqual("private",
                         backend.s3_client.put_object.call_args[1]['ACL'])
        self.assertEqual("videos/videoid/src/somevideo.mp4",
                         backend.s3_client.put_object.call_args[1]['Key'])
        self.assertEqual("privates3bucket",
                         backend.s3_client.put_object.call_args[1]['Bucket'])
Пример #15
0
    def test_start_transcoding(self):
        create_job_fixture = utils.load_json_fixture(
            'elastictranscoder_create_job.json')
        backend = aws_backend.Backend()

        backend.get_src_file_key = Mock(
            return_value='videos/videoid/src/Some video file.mpg')
        backend._elastictranscoder_client = Mock(
            create_job=Mock(return_value=create_job_fixture), )

        jobs = backend.start_transcoding('videoid')

        self.assertEqual(1, len(jobs))
        backend.elastictranscoder_client.create_job.assert_called_once_with(
            PipelineId='pipelineid',
            Input={'Key': 'videos/videoid/src/Some video file.mpg'},
            Output={
                'PresetId': 'presetid',
                'Key': 'videos/videoid/SD.mp4'
            })
        backend.get_src_file_key.assert_called_once_with('videoid')
Пример #16
0
    def test_start_transcoding(self):
        create_job_fixture = utils.load_json_fixture(
            "elastictranscoder_create_job.json"
        )
        backend = aws_backend.Backend()

        backend.get_src_file_key = Mock(
            return_value="videos/videoid/src/Some video file.mpg"
        )
        backend._elastictranscoder_client = Mock(
            create_job=Mock(return_value=create_job_fixture)
        )

        jobs = backend.start_transcoding("videoid")

        self.assertEqual(1, len(jobs))
        backend.elastictranscoder_client.create_job.assert_called_once_with(
            PipelineId="pipelineid",
            Input={"Key": "videos/videoid/src/Some video file.mpg"},
            Output={"PresetId": "presetid", "Key": "videos/videoid/SD.mp4"},
        )
        backend.get_src_file_key.assert_called_once_with("videoid")
Пример #17
0
 def test_subtitle_url(self):
     backend = aws_backend.Backend()
     url = backend.subtitle_url("videoid", "subid", "uk")
     self.assertTrue(url.startswith("https://cloudfrontid.cloudfront.net"))
Пример #18
0
 def test_thumbnail_url(self):
     backend = aws_backend.Backend()
     thumbnail_url = backend.thumbnail_url("videoid", "thumbid")
     self.assertIsNotNone(thumbnail_url)
     self.assertIn("videoid", thumbnail_url)
     self.assertIn("thumbid.jpg", thumbnail_url)
Пример #19
0
 def test_subtitle_url(self):
     backend = aws_backend.Backend()
     url = backend.subtitle_url('videoid', 'subid', 'uk')
     self.assertTrue(url.startswith('https://cloudfrontid.cloudfront.net'))
Пример #20
0
 def test_thumbnail_url(self):
     backend = aws_backend.Backend()
     thumbnail_url = backend.thumbnail_url('videoid', 'thumbid')
     self.assertIsNotNone(thumbnail_url)
     self.assertIn('videoid', thumbnail_url)
     self.assertIn('thumbid.jpg', thumbnail_url)