Commit 4f55c827 by muhammad-ammar

Merge pull request #3948 from edx/ammar/check-youtube-for-bok-choy

Check YouTube for Bok-Choy
parents ba673f8f 55f0d0f9
""" """
Test helper functions and base classes. Test helper functions and base classes.
""" """
import requests
from path import path from path import path
from bok_choy.web_app_test import WebAppTest from bok_choy.web_app_test import WebAppTest
from bok_choy.promise import EmptyPromise
def is_youtube_available():
"""
Check if the required youtube urls are available.
If a URL in `youtube_api_urls` is not reachable then subsequent URLs will not be checked.
Returns:
bool:
"""
youtube_api_urls = {
'main': 'https://www.youtube.com/',
'player': 'http://www.youtube.com/iframe_api',
'metadata': 'http://gdata.youtube.com/feeds/api/videos/',
# For transcripts, you need to check an actual video, so we will
# just specify our default video and see if that one is available.
'transcript': 'http://video.google.com/timedtext?lang=en&v=OEoXaMPEzfM',
}
for url in youtube_api_urls.itervalues():
try:
response = requests.get(url, allow_redirects=False)
except requests.exceptions.ConnectionError:
return False
if response.status_code >= 300:
return False
return True
def load_data_str(rel_path): def load_data_str(rel_path):
......
...@@ -5,15 +5,16 @@ Acceptance tests for Video. ...@@ -5,15 +5,16 @@ Acceptance tests for Video.
""" """
import json import json
from unittest import skipIf
import requests import requests
from ..helpers import UniqueCourseTest from box.test.flaky import flaky
from ..helpers import UniqueCourseTest, is_youtube_available
from ...pages.lms.video.video import VideoPage from ...pages.lms.video.video import VideoPage
from ...pages.lms.tab_nav import TabNavPage from ...pages.lms.tab_nav import TabNavPage
from ...pages.lms.course_nav import CourseNavPage from ...pages.lms.course_nav import CourseNavPage
from ...pages.lms.auto_auth import AutoAuthPage from ...pages.lms.auto_auth import AutoAuthPage
from ...pages.lms.course_info import CourseInfoPage from ...pages.lms.course_info import CourseInfoPage
from ...fixtures.course import CourseFixture, XBlockFixtureDesc from ...fixtures.course import CourseFixture, XBlockFixtureDesc
from box.test.flaky import flaky
VIDEO_SOURCE_PORT = 8777 VIDEO_SOURCE_PORT = 8777
...@@ -39,6 +40,7 @@ class YouTubeConfigError(Exception): ...@@ -39,6 +40,7 @@ class YouTubeConfigError(Exception):
@flaky @flaky
@skipIf(is_youtube_available() is False, 'YouTube is not available!')
class VideoBaseTest(UniqueCourseTest): class VideoBaseTest(UniqueCourseTest):
""" """
Base class for tests of the Video Player Base class for tests of the Video Player
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment