diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/helper.py | 2 | ||||
| -rw-r--r-- | test/test_all_urls.py | 28 | ||||
| -rw-r--r-- | test/test_subtitles.py | 28 | ||||
| -rw-r--r-- | test/test_utils.py | 24 | 
4 files changed, 65 insertions, 17 deletions
| diff --git a/test/helper.py b/test/helper.py index 62cb3ce02..2fa45631a 100644 --- a/test/helper.py +++ b/test/helper.py @@ -145,7 +145,7 @@ def expect_info_dict(self, expected_dict, got_dict):          info_dict_str = ''.join(              '    %s: %s,\n' % (_repr(k), _repr(v))              for k, v in test_info_dict.items()) -        write_string('\n"info_dict": {' + info_dict_str + '}\n', out=sys.stderr) +        write_string('\n"info_dict": {\n' + info_dict_str + '}\n', out=sys.stderr)          self.assertFalse(              missing_keys,              'Missing keys in test definition: %s' % ( diff --git a/test/test_all_urls.py b/test/test_all_urls.py index 84b05da39..965e5d8a5 100644 --- a/test/test_all_urls.py +++ b/test/test_all_urls.py @@ -14,7 +14,7 @@ from test.helper import gettestcases  from youtube_dl.extractor import (      FacebookIE,      gen_extractors, -    JustinTVIE, +    TwitchIE,      YoutubeIE,  ) @@ -72,21 +72,17 @@ class TestAllURLsMatching(unittest.TestCase):          self.assertMatch('http://www.youtube.com/results?search_query=making+mustard', ['youtube:search_url'])          self.assertMatch('https://www.youtube.com/results?baz=bar&search_query=youtube-dl+test+video&filters=video&lclk=video', ['youtube:search_url']) -    def test_justin_tv_channelid_matching(self): -        self.assertTrue(JustinTVIE.suitable('justin.tv/vanillatv')) -        self.assertTrue(JustinTVIE.suitable('twitch.tv/vanillatv')) -        self.assertTrue(JustinTVIE.suitable('www.justin.tv/vanillatv')) -        self.assertTrue(JustinTVIE.suitable('www.twitch.tv/vanillatv')) -        self.assertTrue(JustinTVIE.suitable('http://www.justin.tv/vanillatv')) -        self.assertTrue(JustinTVIE.suitable('http://www.twitch.tv/vanillatv')) -        self.assertTrue(JustinTVIE.suitable('http://www.justin.tv/vanillatv/')) -        self.assertTrue(JustinTVIE.suitable('http://www.twitch.tv/vanillatv/')) - -    def test_justintv_videoid_matching(self): -        self.assertTrue(JustinTVIE.suitable('http://www.twitch.tv/vanillatv/b/328087483')) - -    def test_justin_tv_chapterid_matching(self): -        self.assertTrue(JustinTVIE.suitable('http://www.twitch.tv/tsm_theoddone/c/2349361')) +    def test_twitch_channelid_matching(self): +        self.assertTrue(TwitchIE.suitable('twitch.tv/vanillatv')) +        self.assertTrue(TwitchIE.suitable('www.twitch.tv/vanillatv')) +        self.assertTrue(TwitchIE.suitable('http://www.twitch.tv/vanillatv')) +        self.assertTrue(TwitchIE.suitable('http://www.twitch.tv/vanillatv/')) + +    def test_twitch_videoid_matching(self): +        self.assertTrue(TwitchIE.suitable('http://www.twitch.tv/vanillatv/b/328087483')) + +    def test_twitch_chapterid_matching(self): +        self.assertTrue(TwitchIE.suitable('http://www.twitch.tv/tsm_theoddone/c/2349361'))      def test_youtube_extract(self):          assertExtractId = lambda url, id: self.assertEqual(YoutubeIE.extract_id(url), id) diff --git a/test/test_subtitles.py b/test/test_subtitles.py index 48c302198..8f4602e5f 100644 --- a/test/test_subtitles.py +++ b/test/test_subtitles.py @@ -15,6 +15,7 @@ from youtube_dl.extractor import (      DailymotionIE,      TEDIE,      VimeoIE, +    WallaIE,  ) @@ -279,5 +280,32 @@ class TestVimeoSubtitles(BaseTestSubtitles):              self.assertTrue(subtitles.get(lang) is not None, u'Subtitles for \'%s\' not extracted' % lang) +class TestWallaSubtitles(BaseTestSubtitles): +    url = 'http://vod.walla.co.il/movie/2705958/the-yes-men' +    IE = WallaIE + +    def test_list_subtitles(self): +        self.DL.expect_warning(u'Automatic Captions not supported by this server') +        self.DL.params['listsubtitles'] = True +        info_dict = self.getInfoDict() +        self.assertEqual(info_dict, None) + +    def test_allsubtitles(self): +        self.DL.expect_warning(u'Automatic Captions not supported by this server') +        self.DL.params['writesubtitles'] = True +        self.DL.params['allsubtitles'] = True +        subtitles = self.getSubtitles() +        self.assertEqual(set(subtitles.keys()), set(['heb'])) +        self.assertEqual(md5(subtitles['heb']), 'e758c5d7cb982f6bef14f377ec7a3920') + +    def test_nosubtitles(self): +        self.DL.expect_warning(u'video doesn\'t have subtitles') +        self.url = 'http://vod.walla.co.il/movie/2642630/one-direction-all-for-one' +        self.DL.params['writesubtitles'] = True +        self.DL.params['allsubtitles'] = True +        subtitles = self.getSubtitles() +        self.assertEqual(len(subtitles), 0) + +  if __name__ == '__main__':      unittest.main() diff --git a/test/test_utils.py b/test/test_utils.py index 19c9ba7f8..19f9fce20 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -44,6 +44,7 @@ from youtube_dl.utils import (      limit_length,      escape_rfc3986,      escape_url, +    js_to_json,      get_filesystem_encoding,      compat_getenv,      compat_expanduser, @@ -334,6 +335,29 @@ class TestUtil(unittest.TestCase):          )          self.assertEqual(escape_url('http://vimeo.com/56015672#at=0'), 'http://vimeo.com/56015672#at=0') +    def test_js_to_json_realworld(self): +        inp = '''{ +            'clip':{'provider':'pseudo'} +        }''' +        self.assertEqual(js_to_json(inp), '''{ +            "clip":{"provider":"pseudo"} +        }''') +        json.loads(js_to_json(inp)) + +        inp = '''{ +            'playlist':[{'controls':{'all':null}}] +        }''' +        self.assertEqual(js_to_json(inp), '''{ +            "playlist":[{"controls":{"all":null}}] +        }''') + +    def test_js_to_json_edgecases(self): +        on = js_to_json("{abc_def:'1\\'\\\\2\\\\\\'3\"4'}") +        self.assertEqual(json.loads(on), {"abc_def": "1'\\2\\'3\"4"}) + +        on = js_to_json('{"abc": true}') +        self.assertEqual(json.loads(on), {'abc': True}) +      def test_compat_getenv(self):          test_str = 'ัะตัั'          os.environ['YOUTUBE-DL-TEST'] = test_str.encode(get_filesystem_encoding()) | 
