def test_update_val(self, course_ids, image_keys, post_called, post_call_count, mock_request): """ Verify that VideoImages.update_val method works as expected. """ with patch('video_worker.video_images.requests.post', Mock(return_value=Mock(ok=True))) as mock_post: MockVideo.course_url = course_ids video_images.VideoImages( video_object=MockVideo, work_dir=self.work_dir, source_file=self.source_file, jobid=101, settings=self.settings).update_val(image_keys) for course_id in course_ids: expected_data = { 'course_id': course_id, 'edx_video_id': None, 'generated_images': image_keys } if post_called: mock_request.assert_any_call( 'POST', self.settings['val_video_images_url'], json=expected_data) self.assertEqual(mock_request.call_count, post_call_count)
def test_create_and_update(self, mock_update_val, mock_upload, mock_generate): """ Verify that VideoImages.create_and_update method works as expected. """ video_images.VideoImages(video_object=MockVideo, work_dir=self.work_dir, source_file=self.source_file, jobid=101, settings=self.settings).create_and_update() self.assertTrue(mock_generate.called) mock_upload.assert_called_with(['a/1.png']) mock_update_val.assert_called_with(['s3://images/a/1.png'])
def test_upload_image_keys(self): """ Verify that VideoImages.upload construct correct s3 keys. """ conn = S3Connection() conn.create_bucket(self.settings['aws_video_images_bucket']) s3_image_keys = video_images.VideoImages( video_object=MockVideo, work_dir=self.work_dir, source_file=self.source_file, jobid=101, settings=self.settings).upload(['video_worker/tests/data/edx.jpg']) self.assertEqual(s3_image_keys, ['video-images/edx.jpg'])
def test_generate(self): """ Verify that VideoImages.generate method works as expected. """ images = video_images.VideoImages(video_object=MockVideo, work_dir=self.work_dir, source_file=self.source_file, jobid=101, settings=self.settings).generate() self.assertEqual(len(images), video_images.IMAGE_COUNT) for image in images: with Image.open(image) as img: self.assertEqual( img.size, (video_images.IMAGE_WIDTH, video_images.IMAGE_HEIGHT))
def test_update_val(self, course_ids, image_keys, post_called, post_call_count): """ Verify that VideoImages.update_val method works as expected. """ with patch('video_worker.video_images.requests.post', Mock(return_value=Mock(ok=True))) as mock_post: MockVideo.course_url = course_ids video_images.VideoImages( video_object=MockVideo, work_dir=self.work_dir, source_file=self.source_file, jobid=101, settings=self.settings).update_val(image_keys) self.assertEqual(mock_post.called, post_called) self.assertEqual(mock_post.call_count, post_call_count)