Example #1
0
    def test_call_to_youtube_api_short_playlist(self, build):
        build.return_value.playlistItems.return_value.list.\
            return_value.execute.return_value = self.short_playlist_response
        importer = BulkTaskYoutubeImport(**self.form_data)
        playlist = importer._fetch_all_youtube_videos('fakeId')

        assert playlist == self.short_playlist_response, playlist
    def test_extract_video_info_one_item(self, build):
        importer = BulkTaskYoutubeImport(**self.form_data)
        info = importer._extract_video_info(
            self.short_playlist_response['items'][0])

        assert info['info'][
            'video_url'] == 'https://www.youtube.com/watch?v=youtubeid2'
Example #3
0
    def test_call_to_youtube_api_endpoint(self, build):
        build.return_value.playlistItems.return_value.list.\
            return_value.execute.return_value = self.short_playlist_response
        importer = BulkTaskYoutubeImport(**self.form_data)
        importer._fetch_all_youtube_videos('fakeId')

        build.assert_called_with('youtube', 'v3', developerKey=self.form_data['youtube_api_server_key'])
    def test_call_to_youtube_api_short_playlist(self, build):
        build.return_value.playlistItems.return_value.list.\
            return_value.execute.return_value = self.short_playlist_response
        importer = BulkTaskYoutubeImport(**self.form_data)
        playlist = importer._fetch_all_youtube_videos('fakeId')

        assert playlist == self.short_playlist_response, playlist
Example #5
0
    def test_all_coverage_tasks_extraction(self, build):
        build.return_value.playlistItems.return_value.list.\
            return_value.execute.return_value = self.short_playlist_response
        importer = BulkTaskYoutubeImport(**self.form_data)
        tasks = importer.tasks()

        assert tasks == [{u'info': {u'oembed': '<iframe width="512" height="512" src="https://www.youtube.com/embed/youtubeid2" frameborder="0" allowfullscreen></iframe>',
            'video_url': u'https://www.youtube.com/watch?v=youtubeid2'}}]
Example #6
0
 def test_non_youtube_url_raises_exception(self, build):
     importer = BulkTaskYoutubeImport(**self.form_data)
     id = importer._get_playlist_id('https://www.youtu.be/playlist?list=goodplaylist')
     assert id == 'goodplaylist'
     id = importer._get_playlist_id('https://youtu.be/playlist?list=goodplaylist')
     assert id == 'goodplaylist'
     assert_raises(BulkImportException, importer._get_playlist_id, 'https://youtubee.com/playlist?list=goodplaylist')
     assert_raises(BulkImportException, importer._get_playlist_id, 'https://api.youtube.com/playlist?list=goodplaylist')
     assert_raises(BulkImportException, importer._get_playlist_id, 'https://otherdomain.com/playlist?list=goodplaylist')
Example #7
0
    def test_call_to_youtube_api_long_playlist(self, build):
        build.return_value.playlistItems.return_value.list.\
            return_value.execute.side_effect = [self.long_playlist_response, self.long_playlist_response, self.short_playlist_response]
        importer = BulkTaskYoutubeImport(**self.form_data)
        expected_playlist = {'items': ''}
        expected_playlist['items'] = self.long_playlist_response['items'] + self.long_playlist_response['items'] + self.short_playlist_response['items']
        playlist = importer._fetch_all_youtube_videos('fakeId')

        assert playlist == expected_playlist, playlist
Example #8
0
 def test_parse_playlist_id(self, build):
     importer = BulkTaskYoutubeImport(**self.form_data)
     id = importer._get_playlist_id('https://www.youtube.com/playlist?list=goodplaylist')
     assert id == 'goodplaylist'
     id = importer._get_playlist_id('https://www.youtube.com/watch?v=youtubeid&list=anotherplaylist&option=2')
     assert id == 'anotherplaylist'
     # no playlist
     assert_raises(BulkImportException, importer._get_playlist_id, 'https://www.youtube.com/watch?v=youtubeid')
     # malformed url
     assert_raises(BulkImportException, importer._get_playlist_id, 'www.youtube.com/watch?v=youtubeid&list=anotherplaylist&option=2')
    def test_call_to_youtube_api_endpoint(self, build):
        build.return_value.playlistItems.return_value.list.\
            return_value.execute.return_value = self.short_playlist_response
        importer = BulkTaskYoutubeImport(**self.form_data)
        importer._fetch_all_youtube_videos('fakeId')

        build.assert_called_with(
            'youtube',
            'v3',
            developerKey=self.form_data['youtube_api_server_key'])
    def test_call_to_youtube_api_long_playlist(self, build):
        build.return_value.playlistItems.return_value.list.\
            return_value.execute.side_effect = [self.long_playlist_response, self.long_playlist_response, self.short_playlist_response]
        importer = BulkTaskYoutubeImport(**self.form_data)
        expected_playlist = {'items': ''}
        expected_playlist['items'] = self.long_playlist_response[
            'items'] + self.long_playlist_response[
                'items'] + self.short_playlist_response['items']
        playlist = importer._fetch_all_youtube_videos('fakeId')

        assert playlist == expected_playlist, playlist
    def test_all_coverage_tasks_extraction(self, build):
        build.return_value.playlistItems.return_value.list.\
            return_value.execute.return_value = self.short_playlist_response
        importer = BulkTaskYoutubeImport(**self.form_data)
        tasks = importer.tasks()

        assert tasks == [{
            u'info': {
                u'oembed':
                '<iframe width="512" height="512" src="https://www.youtube.com/embed/youtubeid2" frameborder="0" allowfullscreen></iframe>',
                'video_url': u'https://www.youtube.com/watch?v=youtubeid2'
            }
        }]
 def test_non_youtube_url_raises_exception(self, build):
     importer = BulkTaskYoutubeImport(**self.form_data)
     id = importer._get_playlist_id(
         'https://www.youtu.be/playlist?list=goodplaylist')
     assert id == 'goodplaylist'
     id = importer._get_playlist_id(
         'https://youtu.be/playlist?list=goodplaylist')
     assert id == 'goodplaylist'
     assert_raises(BulkImportException, importer._get_playlist_id,
                   'https://youtubee.com/playlist?list=goodplaylist')
     assert_raises(BulkImportException, importer._get_playlist_id,
                   'https://api.youtube.com/playlist?list=goodplaylist')
     assert_raises(BulkImportException, importer._get_playlist_id,
                   'https://otherdomain.com/playlist?list=goodplaylist')
 def test_parse_playlist_id(self, build):
     importer = BulkTaskYoutubeImport(**self.form_data)
     id = importer._get_playlist_id(
         'https://www.youtube.com/playlist?list=goodplaylist')
     assert id == 'goodplaylist'
     id = importer._get_playlist_id(
         'https://www.youtube.com/watch?v=youtubeid&list=anotherplaylist&option=2'
     )
     assert id == 'anotherplaylist'
     # no playlist
     assert_raises(BulkImportException, importer._get_playlist_id,
                   'https://www.youtube.com/watch?v=youtubeid')
     # malformed url
     assert_raises(
         BulkImportException, importer._get_playlist_id,
         'www.youtube.com/watch?v=youtubeid&list=anotherplaylist&option=2')
Example #14
0
    def test_extract_video_info_one_item(self, build):
        importer = BulkTaskYoutubeImport(**self.form_data)
        info = importer._extract_video_info(self.short_playlist_response['items'][0])

        assert info['info']['video_url'] == 'https://www.youtube.com/watch?v=youtubeid2'
    def test_tasks_return_emtpy_list_if_no_video_to_import(self, build):
        form_data = {'playlist_url': '', 'youtube_api_server_key': 'apikey'}
        number_of_tasks = BulkTaskYoutubeImport(**form_data).count_tasks()

        assert number_of_tasks == 0, number_of_tasks