test_age_restriction.py (1379B)
1 #!/usr/bin/env python 2 from __future__ import unicode_literals 3 4 # Allow direct execution 5 import os 6 import sys 7 import unittest 8 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 9 10 from test.helper import try_rm 11 12 13 from youtube_dl import YoutubeDL 14 15 16 def _download_restricted(url, filename, age): 17 """ Returns true if the file has been downloaded """ 18 19 params = { 20 'age_limit': age, 21 'skip_download': True, 22 'writeinfojson': True, 23 'outtmpl': '%(id)s.%(ext)s', 24 } 25 ydl = YoutubeDL(params) 26 ydl.add_default_info_extractors() 27 json_filename = os.path.splitext(filename)[0] + '.info.json' 28 try_rm(json_filename) 29 ydl.download([url]) 30 res = os.path.exists(json_filename) 31 try_rm(json_filename) 32 return res 33 34 35 class TestAgeRestriction(unittest.TestCase): 36 def _assert_restricted(self, url, filename, age, old_age=None): 37 self.assertTrue(_download_restricted(url, filename, old_age)) 38 self.assertFalse(_download_restricted(url, filename, age)) 39 40 def test_youtube(self): 41 self._assert_restricted('07FYdnEawAQ', '07FYdnEawAQ.mp4', 10) 42 43 def test_youporn(self): 44 self._assert_restricted( 45 'http://www.youporn.com/watch/505835/sex-ed-is-it-safe-to-masturbate-daily/', 46 '505835.mp4', 2, old_age=25) 47 48 49 if __name__ == '__main__': 50 unittest.main()