Commit 9a2c96ca by Alexander Kryklia

Merge pull request #4693 from edx/anton/fix-video-tests

Fix failing video tests due to wrong IFRAME_API_RESPONSE 
parents 1e1b321b 4f391f66
...@@ -4,7 +4,7 @@ Unit test for stub YouTube implementation. ...@@ -4,7 +4,7 @@ Unit test for stub YouTube implementation.
import unittest import unittest
import requests import requests
from ..youtube import StubYouTubeService from ..youtube import StubYouTubeService, IFRAME_API_RESPONSE
class StubYouTubeServiceTest(unittest.TestCase): class StubYouTubeServiceTest(unittest.TestCase):
...@@ -74,3 +74,16 @@ class StubYouTubeServiceTest(unittest.TestCase): ...@@ -74,3 +74,16 @@ class StubYouTubeServiceTest(unittest.TestCase):
# ensure that server config dict is empty after successful reset # ensure that server config dict is empty after successful reset
self.assertEqual(self.server.config, {}) self.assertEqual(self.server.config, {})
def test_iframe_response_is_up_to_date(self):
"""
Check if IFRAME_API_RESPONSE is up-to-date.
This should prevent issues with IFRAME_API_RESPONSE hard-coding,
when hard-coded version is different from actual.
"""
self.assertEqual(
IFRAME_API_RESPONSE,
requests.get('https://www.youtube.com/iframe_api').content.strip("\n")
)
...@@ -20,13 +20,20 @@ from .http import StubHttpRequestHandler, StubHttpService ...@@ -20,13 +20,20 @@ from .http import StubHttpRequestHandler, StubHttpService
import json import json
import time import time
import requests import requests
import textwrap
from urlparse import urlparse from urlparse import urlparse
from collections import OrderedDict from collections import OrderedDict
# Unless we find a better way, we will get the response from iframe api IFRAME_API_RESPONSE = textwrap.dedent(
# once per suite run, instead of using hardcoded response, to avoid issues. "if (!window['YT']) {var YT = {loading: 0,loaded: 0};}if (!window['YTConfig']) {var YTConfig"
IFRAME_API_RESPONSE = requests.get('http://www.youtube.com/iframe_api').text " = {'host': 'http://www.youtube.com'};}if (!YT.loading) {YT.loading = 1;(function(){var l ="
" [];YT.ready = function(f) {if (YT.loaded) {f();} else {l.push(f);}};window.onYTReady ="
" function() {YT.loaded = 1;for (var i = 0; i < l.length; i++) {try {l[i]();} catch (e) "
"{}}};YT.setConfig = function(c) {for (var k in c) {if (c.hasOwnProperty(k)) {YTConfig[k]"
" = c[k];}}};var a = document.createElement('script');a.id = 'www-widgetapi-script';a.src"
" = 'https:' + '//s.ytimg.com/yts/jsbin/www-widgetapi-vflT-xPmY/www-widgetapi.js';a.async"
" = true;var b = document.getElementsByTagName('script')[0];b.parentNode.insertBefore(a, b);})();}")
class StubYouTubeHandler(StubHttpRequestHandler): class StubYouTubeHandler(StubHttpRequestHandler):
......
...@@ -3,11 +3,9 @@ ...@@ -3,11 +3,9 @@
""" """
Acceptance tests for CMS Video Handout. Acceptance tests for CMS Video Handout.
""" """
from unittest import skip
from .test_studio_video_module import CMSVideoBaseTest from .test_studio_video_module import CMSVideoBaseTest
@skip('Failing in master in wait_for_video_component_render BLD-1194')
class VideoHandoutTest(CMSVideoBaseTest): class VideoHandoutTest(CMSVideoBaseTest):
""" """
CMS Video Handout Test Class CMS Video Handout Test Class
......
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