| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | #!/usr/bin/env pythonfrom __future__ import unicode_literals# Allow direct executionimport osimport sysimport unittestsys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))from test.helper import try_rmfrom youtube_dl import YoutubeDLfrom youtube_dl.utils import DownloadErrordef _download_restricted(url, filename, age):    """ Returns true if the file has been downloaded """    params = {        'age_limit': age,        'skip_download': True,        'writeinfojson': True,        'outtmpl': '%(id)s.%(ext)s',    }    ydl = YoutubeDL(params)    ydl.add_default_info_extractors()    json_filename = os.path.splitext(filename)[0] + '.info.json'    try_rm(json_filename)    try:        ydl.download([url])    except DownloadError:        try_rm(json_filename)    res = os.path.exists(json_filename)    try_rm(json_filename)    return resclass TestAgeRestriction(unittest.TestCase):    def _assert_restricted(self, url, filename, age, old_age=None):        self.assertTrue(_download_restricted(url, filename, old_age))        self.assertFalse(_download_restricted(url, filename, age))    def test_youtube(self):        self._assert_restricted('HtVdAasjOgU', 'HtVdAasjOgU.mp4', 10)    def test_youporn(self):        self._assert_restricted(            'https://www.youporn.com/watch/16715086/sex-ed-in-detention-18-asmr/',            '16715086.mp4', 2, old_age=25)if __name__ == '__main__':    unittest.main()
 |