Esempio n. 1
0
 def test_get_uploaded_video_ids(self):
     mocker = test_utils.RequestsMocker()
     mocker.expect_request('get',
                           'https://www.googleapis.com/youtube/v3/channels',
                           params={
                               'part': 'contentDetails',
                               'id': 'test-channel-id',
                               'key': 'test-youtube-api-key',
                           },
                           body=json.dumps({
                               'items': [
                                   {
                                       'contentDetails': {
                                           'relatedPlaylists': {
                                               'uploads':
                                               'test-playlist-id',
                                           },
                                       },
                                   },
                               ]
                           }))
     mocker.expect_request(
         'get',
         'https://www.googleapis.com/youtube/v3/playlistItems',
         params={
             'part': 'snippet',
             'playlistId': 'test-playlist-id',
             'key': 'test-youtube-api-key',
         },
         body=json.dumps({
             'items': [
                 {
                     'snippet': {
                         'resourceId': {
                             'kind': u'youtube#video',
                             'videoId': 'test-video-id1',
                         }
                     }
                 },
                 {
                     'snippet': {
                         'resourceId': {
                             'kind': u'youtube#video',
                             'videoId': 'test-video-id2',
                         }
                     }
                 },
                 {
                     'snippet': {
                         'resourceId': {
                             'kind': u'youtube#something-else',
                         }
                     }
                 },
             ]
         }))
     google.get_uploaded_video_ids.run_original_for_test()
     with mocker:
         video_ids = google.get_uploaded_video_ids('test-channel-id')
     assert_equal(video_ids, ['test-video-id1', 'test-video-id2'])
Esempio n. 2
0
 def test_get_video_info(self):
     mocker = test_utils.RequestsMocker()
     mocker.expect_request('get',
                           'https://www.googleapis.com/youtube/v3/videos',
                           params={
                               'part': 'snippet,contentDetails',
                               'id': 'test-video-id',
                               'key': settings.YOUTUBE_API_KEY,
                           },
                           body=json.dumps({
                               'items': [{
                                   'snippet': {
                                       'title': 'test-title',
                                       'channelId': 'test-channel-id',
                                       'description': 'test-description',
                                       'thumbnails': {
                                           'high': {
                                               'url': 'test-thumbnail-url',
                                           }
                                       }
                                   },
                                   'contentDetails': {
                                       'duration': 'PT10M10S',
                                   }
                               }]
                           }))
     google.get_video_info.run_original_for_test()
     with mocker:
         video_info = google.get_video_info('test-video-id')
     self.assertEqual(video_info.channel_id, 'test-channel-id')
     self.assertEqual(video_info.title, 'test-title')
     self.assertEqual(video_info.description, 'test-description')
     self.assertEqual(video_info.duration, 610)
     self.assertEqual(video_info.thumbnail_url, 'test-thumbnail-url')
Esempio n. 3
0
 def test_get_uploaded_video_ids_multiple_pages(self):
     mocker = test_utils.RequestsMocker()
     mocker.expect_request('get',
                           'https://www.googleapis.com/youtube/v3/channels',
                           params={
                               'part': 'contentDetails',
                               'id': 'test-channel-id',
                               'key': 'test-youtube-api-key',
                           },
                           body=json.dumps({
                               'items': [
                                   {
                                       'contentDetails': {
                                           'relatedPlaylists': {
                                               'uploads':
                                               'test-playlist-id',
                                           },
                                       },
                                   },
                               ]
                           }))
     mocker.expect_request(
         'get',
         'https://www.googleapis.com/youtube/v3/playlistItems',
         params={
             'part': 'snippet',
             'maxResults': 50,
             'playlistId': 'test-playlist-id',
             'key': 'test-youtube-api-key',
         },
         body=json.dumps({
             'items': [
                 self.make_video_snippet('test-video-id{}'.format(i))
                 for i in range(50)
             ],
             'nextPageToken':
             'test-page-token',
         }))
     mocker.expect_request(
         'get',
         'https://www.googleapis.com/youtube/v3/playlistItems',
         params={
             'part': 'snippet',
             'maxResults': 50,
             'playlistId': 'test-playlist-id',
             'key': 'test-youtube-api-key',
             'pageToken': 'test-page-token',
         },
         body=json.dumps({
             'items': [
                 self.make_video_snippet('test-video-id{}'.format(i))
                 for i in range(50, 75)
             ],
         }))
     google.get_uploaded_video_ids.run_original_for_test()
     with mocker:
         video_ids = google.get_uploaded_video_ids('test-channel-id')
     assert_equal(video_ids,
                  ['test-video-id{}'.format(i) for i in range(75)])
Esempio n. 4
0
 def test_update_video_description(self):
     mocker = test_utils.RequestsMocker()
     mocker.expect_request('get',
                           'https://www.googleapis.com/youtube/v3/videos',
                           params={
                               'part': 'snippet',
                               'id': 'test-video-id',
                           },
                           headers={
                               'Authorization': 'Bearer test-access-token',
                           },
                           body=json.dumps({
                               'items': [{
                                   'snippet': {
                                       'title': 'test-title',
                                       'channelId': 'test-channel-id',
                                       'description': 'test-description',
                                       'thumbnails': {
                                           'high': {
                                               'url': 'test-thumbnail-url',
                                           }
                                       }
                                   }
                               }]
                           }))
     mocker.expect_request('put',
                           'https://www.googleapis.com/youtube/v3/videos',
                           params={
                               'part': 'snippet',
                           },
                           headers={
                               'Authorization': 'Bearer test-access-token',
                               'content-type': 'application/json',
                           },
                           data=json.dumps({
                               'id': 'test-video-id',
                               'snippet': {
                                   'title': 'test-title',
                                   'channelId': 'test-channel-id',
                                   'description':
                                   'test-updated-description',
                                   'thumbnails': {
                                       'high': {
                                           'url': 'test-thumbnail-url',
                                       }
                                   }
                               }
                           }))
     google.update_video_description.run_original_for_test()
     with mocker:
         google.update_video_description('test-video-id',
                                         'test-access-token',
                                         'test-updated-description')
Esempio n. 5
0
 def test_get_video_invalid_body(self):
     mocker = test_utils.RequestsMocker()
     mocker.expect_request(
         'get', 'https://www.googleapis.com/youtube/v3/videos', params={
             'part': 'snippet,contentDetails',
             'id': 'test-video-id',
             'key': settings.YOUTUBE_API_KEY,
         }, body="Invalid body")
     google.get_video_info.run_original_for_test()
     with mocker:
         with assert_raises(google.APIError):
             google.get_video_info('test-video-id')
Esempio n. 6
0
 def test_get_video_info_no_items(self):
     mocker = test_utils.RequestsMocker()
     mocker.expect_request(
         'get', 'https://www.googleapis.com/youtube/v3/videos', params={
             'part': 'snippet,contentDetails',
             'id': 'test-video-id',
             'key': settings.GOOGLE_API_KEY,
         }, body=json.dumps({
             'items': [
             ]
         })
     )
     google.get_video_info.run_original_for_test()
     with mocker:
         with assert_raises(google.APIError):
             google.get_video_info('test-video-id')
Esempio n. 7
0
 def test_get_user_info(self):
     mocker = test_utils.RequestsMocker()
     mocker.expect_request('get',
                           'https://www.googleapis.com/youtube/v3/channels',
                           params={
                               'part': 'id,snippet',
                               'mine': 'true',
                           },
                           headers={
                               'Authorization': 'Bearer test-access-token',
                           },
                           body=json.dumps({
                               'items': [{
                                   'id': 'test-channel-id',
                                   'snippet': {
                                       'title': 'test-username',
                                   },
                               }]
                           }))
     google.get_youtube_user_info.run_original_for_test()
     with mocker:
         user_info = google.get_youtube_user_info('test-access-token')
     self.assertEqual(user_info, ('test-channel-id', 'test-username'))