diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_utils.py | 39 | ||||
| -rw-r--r-- | test/test_youtube_lists.py | 46 | 
2 files changed, 40 insertions, 45 deletions
diff --git a/test/test_utils.py b/test/test_utils.py index 8d8997977..3efbed29d 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -40,6 +40,9 @@ from youtube_dl.utils import (      parse_iso8601,      strip_jsonp,      uppercase_escape, +    limit_length, +    escape_rfc3986, +    escape_url,  ) @@ -286,5 +289,41 @@ class TestUtil(unittest.TestCase):          self.assertEqual(uppercase_escape('aä'), 'aä')          self.assertEqual(uppercase_escape('\\U0001d550'), '𝕐') +    def test_limit_length(self): +        self.assertEqual(limit_length(None, 12), None) +        self.assertEqual(limit_length('foo', 12), 'foo') +        self.assertTrue( +            limit_length('foo bar baz asd', 12).startswith('foo bar')) +        self.assertTrue('...' in limit_length('foo bar baz asd', 12)) + +    def test_escape_rfc3986(self): +        reserved = "!*'();:@&=+$,/?#[]" +        unreserved = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~' +        self.assertEqual(escape_rfc3986(reserved), reserved) +        self.assertEqual(escape_rfc3986(unreserved), unreserved) +        self.assertEqual(escape_rfc3986('тест'), '%D1%82%D0%B5%D1%81%D1%82') +        self.assertEqual(escape_rfc3986('%D1%82%D0%B5%D1%81%D1%82'), '%D1%82%D0%B5%D1%81%D1%82') +        self.assertEqual(escape_rfc3986('foo bar'), 'foo%20bar') +        self.assertEqual(escape_rfc3986('foo%20bar'), 'foo%20bar') + +    def test_escape_url(self): +        self.assertEqual( +            escape_url('http://wowza.imust.org/srv/vod/telemb/new/UPLOAD/UPLOAD/20224_IncendieHavré_FD.mp4'), +            'http://wowza.imust.org/srv/vod/telemb/new/UPLOAD/UPLOAD/20224_IncendieHavre%CC%81_FD.mp4' +        ) +        self.assertEqual( +            escape_url('http://www.ardmediathek.de/tv/Sturm-der-Liebe/Folge-2036-Zu-Mann-und-Frau-erklärt/Das-Erste/Video?documentId=22673108&bcastId=5290'), +            'http://www.ardmediathek.de/tv/Sturm-der-Liebe/Folge-2036-Zu-Mann-und-Frau-erkl%C3%A4rt/Das-Erste/Video?documentId=22673108&bcastId=5290' +        ) +        self.assertEqual( +            escape_url('http://тест.рф/фрагмент'), +            'http://тест.рф/%D1%84%D1%80%D0%B0%D0%B3%D0%BC%D0%B5%D0%BD%D1%82' +        ) +        self.assertEqual( +            escape_url('http://тест.рф/абв?абв=абв#абв'), +            'http://тест.рф/%D0%B0%D0%B1%D0%B2?%D0%B0%D0%B1%D0%B2=%D0%B0%D0%B1%D0%B2#%D0%B0%D0%B1%D0%B2' +        ) +        self.assertEqual(escape_url('http://vimeo.com/56015672#at=0'), 'http://vimeo.com/56015672#at=0') +  if __name__ == '__main__':      unittest.main() diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py index 3aadedd64..1fa99f88b 100644 --- a/test/test_youtube_lists.py +++ b/test/test_youtube_lists.py @@ -25,15 +25,6 @@ class TestYoutubeLists(unittest.TestCase):          """Make sure the info has '_type' set to 'playlist'"""          self.assertEqual(info['_type'], 'playlist') -    def test_youtube_playlist(self): -        dl = FakeYDL() -        ie = YoutubePlaylistIE(dl) -        result = ie.extract('https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re') -        self.assertIsPlaylist(result) -        self.assertEqual(result['title'], 'ytdl test PL') -        ytie_results = [YoutubeIE().extract_id(url['url']) for url in result['entries']] -        self.assertEqual(ytie_results, [ 'bV9L5Ht9LgY', 'FXxLjLQi3Fg', 'tU3Bgo5qJZE']) -      def test_youtube_playlist_noplaylist(self):          dl = FakeYDL()          dl.params['noplaylist'] = True @@ -41,36 +32,7 @@ class TestYoutubeLists(unittest.TestCase):          result = ie.extract('https://www.youtube.com/watch?v=FXxLjLQi3Fg&list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re')          self.assertEqual(result['_type'], 'url')          self.assertEqual(YoutubeIE().extract_id(result['url']), 'FXxLjLQi3Fg') - -    def test_issue_673(self): -        dl = FakeYDL() -        ie = YoutubePlaylistIE(dl) -        result = ie.extract('PLBB231211A4F62143') -        self.assertTrue(len(result['entries']) > 25) - -    def test_youtube_playlist_long(self): -        dl = FakeYDL() -        ie = YoutubePlaylistIE(dl) -        result = ie.extract('https://www.youtube.com/playlist?list=UUBABnxM4Ar9ten8Mdjj1j0Q') -        self.assertIsPlaylist(result) -        self.assertTrue(len(result['entries']) >= 799) - -    def test_youtube_playlist_with_deleted(self): -        #651 -        dl = FakeYDL() -        ie = YoutubePlaylistIE(dl) -        result = ie.extract('https://www.youtube.com/playlist?list=PLwP_SiAcdui0KVebT0mU9Apz359a4ubsC') -        ytie_results = [YoutubeIE().extract_id(url['url']) for url in result['entries']] -        self.assertFalse('pElCt5oNDuI' in ytie_results) -        self.assertFalse('KdPEApIVdWM' in ytie_results) -         -    def test_youtube_playlist_empty(self): -        dl = FakeYDL() -        ie = YoutubePlaylistIE(dl) -        result = ie.extract('https://www.youtube.com/playlist?list=PLtPgu7CB4gbZDA7i_euNxn75ISqxwZPYx') -        self.assertIsPlaylist(result) -        self.assertEqual(len(result['entries']), 0) - +          def test_youtube_course(self):          dl = FakeYDL()          ie = YoutubePlaylistIE(dl) @@ -97,12 +59,6 @@ class TestYoutubeLists(unittest.TestCase):          result = ie.extract('https://www.youtube.com/user/TheLinuxFoundation')          self.assertTrue(len(result['entries']) >= 320) -    def test_youtube_safe_search(self): -        dl = FakeYDL() -        ie = YoutubePlaylistIE(dl) -        result = ie.extract('PLtPgu7CB4gbY9oDN3drwC3cMbJggS7dKl') -        self.assertEqual(len(result['entries']), 2) -      def test_youtube_show(self):          dl = FakeYDL()          ie = YoutubeShowIE(dl)  | 
