mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-03 22:37:07 -05:00 
			
		
		
		
	Allow _TESTS attribute for IEs with multiple tests
This also improves the numbering of duplicate tests
This commit is contained in:
		@@ -63,6 +63,9 @@ for ie in youtube_dl.extractor.gen_extractors():
 | 
			
		||||
    if t:
 | 
			
		||||
        t['name'] = type(ie).__name__[:-len('IE')]
 | 
			
		||||
        defs.append(t)
 | 
			
		||||
    for t in getattr(ie, '_TESTS', []):
 | 
			
		||||
        t['name'] = type(ie).__name__[:-len('IE')]
 | 
			
		||||
        defs.append(t)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
with io.open(PARAMETERS_FILE, encoding='utf-8') as pf:
 | 
			
		||||
@@ -162,9 +165,12 @@ def generator(test_case):
 | 
			
		||||
### And add them to TestDownload
 | 
			
		||||
for n, test_case in enumerate(defs):
 | 
			
		||||
    test_method = generator(test_case)
 | 
			
		||||
    test_method.__name__ = "test_{0}".format(test_case["name"])
 | 
			
		||||
    if getattr(TestDownload, test_method.__name__, False):
 | 
			
		||||
        test_method.__name__ = "test_{0}_{1}".format(test_case["name"], n)
 | 
			
		||||
    tname = 'test_' + str(test_case['name'])
 | 
			
		||||
    i = 1
 | 
			
		||||
    while hasattr(TestDownload, tname):
 | 
			
		||||
        tname = 'test_'  + test_case['name'] + '_' + str(i)
 | 
			
		||||
        i += 1
 | 
			
		||||
    test_method.__name__ = tname
 | 
			
		||||
    setattr(TestDownload, test_method.__name__, test_method)
 | 
			
		||||
    del test_method
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,42 +1,4 @@
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Youtube",
 | 
			
		||||
    "url":  "http://www.youtube.com/watch?v=BaW_jenozKc",
 | 
			
		||||
    "file":  "BaW_jenozKc.mp4",
 | 
			
		||||
    "info_dict": {
 | 
			
		||||
      "title": "youtube-dl test video \"'/\\ä↭𝕐",
 | 
			
		||||
      "uploader": "Philipp Hagemeister",
 | 
			
		||||
      "uploader_id": "phihag",
 | 
			
		||||
      "upload_date": "20121002",
 | 
			
		||||
      "description": "test chars:  \"'/\\ä↭𝕐\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de ."
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Youtube",
 | 
			
		||||
    "url":  "http://www.youtube.com/watch?v=1ltcDfZMA3U",
 | 
			
		||||
    "file":  "1ltcDfZMA3U.flv",
 | 
			
		||||
    "note": "Test VEVO video (#897)",
 | 
			
		||||
    "info_dict": {
 | 
			
		||||
      "upload_date": "20070518",
 | 
			
		||||
      "title": "Maps - It Will Find You",
 | 
			
		||||
      "description": "Music video by Maps performing It Will Find You.",
 | 
			
		||||
      "uploader": "MuteUSA",
 | 
			
		||||
      "uploader_id": "MuteUSA"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Youtube",
 | 
			
		||||
    "url":  "http://www.youtube.com/watch?v=UxxajLWwzqY",
 | 
			
		||||
    "file":  "UxxajLWwzqY.mp4",
 | 
			
		||||
    "note": "Test generic use_cipher_signature video (#897)",
 | 
			
		||||
    "info_dict": {
 | 
			
		||||
      "upload_date": "20120506",
 | 
			
		||||
      "title": "Icona Pop - I Love It (feat. Charli XCX) [OFFICIAL VIDEO]",
 | 
			
		||||
      "description": "md5:b085c9804f5ab69f4adea963a2dceb3c",
 | 
			
		||||
      "uploader": "IconaPop",
 | 
			
		||||
      "uploader_id": "IconaPop"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Dailymotion",
 | 
			
		||||
    "md5":  "392c4b85a60a90dc4792da41ce3144eb",
 | 
			
		||||
 
 | 
			
		||||
@@ -81,6 +81,44 @@ class YoutubeIE(InfoExtractor):
 | 
			
		||||
        '46': '1080x1920',
 | 
			
		||||
    }
 | 
			
		||||
    IE_NAME = u'youtube'
 | 
			
		||||
    _TESTS = [
 | 
			
		||||
        {
 | 
			
		||||
            "url":  "http://www.youtube.com/watch?v=BaW_jenozKc",
 | 
			
		||||
            "file":  "BaW_jenozKc.mp4",
 | 
			
		||||
            "info_dict": {
 | 
			
		||||
              "title": "youtube-dl test video \"'/\\ä↭𝕐",
 | 
			
		||||
              "uploader": "Philipp Hagemeister",
 | 
			
		||||
              "uploader_id": "phihag",
 | 
			
		||||
              "upload_date": "20121002",
 | 
			
		||||
              "description": "test chars:  \"'/\\ä↭𝕐\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de ."
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "url":  "http://www.youtube.com/watch?v=1ltcDfZMA3U",
 | 
			
		||||
            "file":  "1ltcDfZMA3U.flv",
 | 
			
		||||
            "note": "Test VEVO video (#897)",
 | 
			
		||||
            "info_dict": {
 | 
			
		||||
              "upload_date": "20070518",
 | 
			
		||||
              "title": "Maps - It Will Find You",
 | 
			
		||||
              "description": "Music video by Maps performing It Will Find You.",
 | 
			
		||||
              "uploader": "MuteUSA",
 | 
			
		||||
              "uploader_id": "MuteUSA"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "url":  "http://www.youtube.com/watch?v=UxxajLWwzqY",
 | 
			
		||||
            "file":  "UxxajLWwzqY.mp4",
 | 
			
		||||
            "note": "Test generic use_cipher_signature video (#897)",
 | 
			
		||||
            "info_dict": {
 | 
			
		||||
              "upload_date": "20120506",
 | 
			
		||||
              "title": "Icona Pop - I Love It (feat. Charli XCX) [OFFICIAL VIDEO]",
 | 
			
		||||
              "description": "md5:b085c9804f5ab69f4adea963a2dceb3c",
 | 
			
		||||
              "uploader": "IconaPop",
 | 
			
		||||
              "uploader_id": "IconaPop"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def suitable(cls, url):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user