Sergey M․
6 years ago
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
2 changed files with
18 additions and
0 deletions
-
test/test_utils.py
-
youtube_dl/utils.py
|
|
@ -78,6 +78,7 @@ from youtube_dl.utils import ( |
|
|
|
uppercase_escape, |
|
|
|
lowercase_escape, |
|
|
|
url_basename, |
|
|
|
url_or_none, |
|
|
|
base_url, |
|
|
|
urljoin, |
|
|
|
urlencode_postdata, |
|
|
@ -507,6 +508,16 @@ class TestUtil(unittest.TestCase): |
|
|
|
self.assertEqual(urljoin('http://foo.de/', ['foobar']), None) |
|
|
|
self.assertEqual(urljoin('http://foo.de/a/b/c.txt', '.././../d.txt'), 'http://foo.de/d.txt') |
|
|
|
|
|
|
|
def test_url_or_none(self): |
|
|
|
self.assertEqual(url_or_none(None), None) |
|
|
|
self.assertEqual(url_or_none(''), None) |
|
|
|
self.assertEqual(url_or_none('foo'), None) |
|
|
|
self.assertEqual(url_or_none('http://foo.de'), 'http://foo.de') |
|
|
|
self.assertEqual(url_or_none('https://foo.de'), 'https://foo.de') |
|
|
|
self.assertEqual(url_or_none('http$://foo.de'), None) |
|
|
|
self.assertEqual(url_or_none('http://foo.de'), 'http://foo.de') |
|
|
|
self.assertEqual(url_or_none('//foo.de'), '//foo.de') |
|
|
|
|
|
|
|
def test_parse_age_limit(self): |
|
|
|
self.assertEqual(parse_age_limit(None), None) |
|
|
|
self.assertEqual(parse_age_limit(False), None) |
|
|
|
|
|
@ -1866,6 +1866,13 @@ def strip_or_none(v): |
|
|
|
return None if v is None else v.strip() |
|
|
|
|
|
|
|
|
|
|
|
def url_or_none(url): |
|
|
|
if not url or not isinstance(url, compat_str): |
|
|
|
return None |
|
|
|
url = url.strip() |
|
|
|
return url if re.match(r'^(?:[a-zA-Z][\da-zA-Z.+-]*:)?//', url) else None |
|
|
|
|
|
|
|
|
|
|
|
def parse_duration(s): |
|
|
|
if not isinstance(s, compat_basestring): |
|
|
|
return None |
|
|
|