aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-04-19 19:41:06 +0200
committerPhilipp Hagemeister <phihag@phihag.de>2014-04-19 19:41:06 +0200
commit52fadd5fb2ea5d7e7cd6000203aa7ef886ffad07 (patch)
tree9c8caae3790b3237cf78c40facaeb4dd20d103ca
parent5367fe7f4d8699b711a712598615a815a013fa9c (diff)
downloadyoutube-dl-52fadd5fb2ea5d7e7cd6000203aa7ef886ffad07.tar.xz
[test_all_urls] Add support for distributed URL matching test definition
-rw-r--r--test/helper.py14
-rw-r--r--test/test_all_urls.py3
-rw-r--r--youtube_dl/extractor/extremetube.py7
-rw-r--r--youtube_dl/extractor/ign.py7
-rw-r--r--youtube_dl/extractor/yahoo.py7
5 files changed, 21 insertions, 17 deletions
diff --git a/test/helper.py b/test/helper.py
index 8739f816c..09873aea3 100644
--- a/test/helper.py
+++ b/test/helper.py
@@ -74,13 +74,19 @@ class FakeYDL(YoutubeDL):
old_report_warning(message)
self.report_warning = types.MethodType(report_warning, self)
-def gettestcases():
+
+def gettestcases(include_onlymatching=False):
for ie in youtube_dl.extractor.gen_extractors():
t = getattr(ie, '_TEST', None)
if t:
- t['name'] = type(ie).__name__[:-len('IE')]
- yield t
- for t in getattr(ie, '_TESTS', []):
+ assert not hasattr(ie, '_TESTS'), \
+ '%s has _TEST and _TESTS' % type(ie).__name__
+ tests = [t]
+ else:
+ tests = getattr(ie, '_TESTS', [])
+ for t in tests:
+ if not include_onlymatching and getattr(t, 'only_matching', False):
+ continue
t['name'] = type(ie).__name__[:-len('IE')]
yield t
diff --git a/test/test_all_urls.py b/test/test_all_urls.py
index a9c4ed9e3..4b56137ce 100644
--- a/test/test_all_urls.py
+++ b/test/test_all_urls.py
@@ -106,7 +106,7 @@ class TestAllURLsMatching(unittest.TestCase):
def test_no_duplicates(self):
ies = gen_extractors()
- for tc in gettestcases():
+ for tc in gettestcases(include_onlymatching=True):
url = tc['url']
for ie in ies:
if type(ie).__name__ in ('GenericIE', tc['name'] + 'IE'):
@@ -176,5 +176,6 @@ class TestAllURLsMatching(unittest.TestCase):
'https://screen.yahoo.com/smartwatches-latest-wearable-gadgets-163745379-cbs.html',
['Yahoo'])
+
if __name__ == '__main__':
unittest.main()
diff --git a/youtube_dl/extractor/extremetube.py b/youtube_dl/extractor/extremetube.py
index d7fc43287..7612a0364 100644
--- a/youtube_dl/extractor/extremetube.py
+++ b/youtube_dl/extractor/extremetube.py
@@ -10,7 +10,7 @@ from ..utils import (
class ExtremeTubeIE(InfoExtractor):
_VALID_URL = r'^(?:https?://)?(?:www\.)?(?P<url>extremetube\.com/.*?video/.+?(?P<videoid>[0-9]+))(?:[/?&]|$)'
- _TEST = {
+ _TESTS = [{
u'url': u'http://www.extremetube.com/video/music-video-14-british-euro-brit-european-cumshots-swallow-652431',
u'file': u'652431.mp4',
u'md5': u'1fb9228f5e3332ec8c057d6ac36f33e0',
@@ -19,7 +19,10 @@ class ExtremeTubeIE(InfoExtractor):
u"uploader": u"unknown",
u"age_limit": 18,
}
- }
+ }, {
+ 'url': 'http://www.extremetube.com/gay/video/abcde-1234',
+ 'only_matching': True,
+ }]
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
diff --git a/youtube_dl/extractor/ign.py b/youtube_dl/extractor/ign.py
index cfeaa4146..1f42c6d3a 100644
--- a/youtube_dl/extractor/ign.py
+++ b/youtube_dl/extractor/ign.py
@@ -106,7 +106,7 @@ class OneUPIE(IGNIE):
_DESCRIPTION_RE = r'<div id="vid_summary">(.+?)</div>'
- _TEST = {
+ _TESTS = [{
'url': 'http://gamevideos.1up.com/video/id/34976',
'md5': '68a54ce4ebc772e4b71e3123d413163d',
'info_dict': {
@@ -115,10 +115,7 @@ class OneUPIE(IGNIE):
'title': 'Sniper Elite V2 - Trailer',
'description': 'md5:5d289b722f5a6d940ca3136e9dae89cf',
}
- }
-
- # Override IGN tests
- _TESTS = []
+ }]
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
diff --git a/youtube_dl/extractor/yahoo.py b/youtube_dl/extractor/yahoo.py
index e2cf1ae56..4671f49ed 100644
--- a/youtube_dl/extractor/yahoo.py
+++ b/youtube_dl/extractor/yahoo.py
@@ -104,7 +104,7 @@ class YahooNewsIE(YahooIE):
IE_NAME = 'yahoo:news'
_VALID_URL = r'http://news\.yahoo\.com/video/.*?-(?P<id>\d*?)\.html'
- _TEST = {
+ _TESTS = [{
'url': 'http://news.yahoo.com/video/china-moses-crazy-blues-104538833.html',
'md5': '67010fdf3a08d290e060a4dd96baa07b',
'info_dict': {
@@ -113,10 +113,7 @@ class YahooNewsIE(YahooIE):
'title': 'China Moses Is Crazy About the Blues',
'description': 'md5:9900ab8cd5808175c7b3fe55b979bed0',
},
- }
-
- # Overwrite YahooIE properties we don't want
- _TESTS = []
+ }]
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)