mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[test_unicode_literals] Arm unicode_literals check
From now on, the line from __future__ import unicode_literals should be contained in every single Python file lest we run into any more 2.x/3.x issues. Going forward, we're likely to develop on 3.x only and would likely miss subtle bugs otherwise.
This commit is contained in:
		| @@ -1,4 +1,6 @@ | |||||||
| #!/usr/bin/env python | #!/usr/bin/env python | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import os | import os | ||||||
| from os.path import dirname as dirn | from os.path import dirname as dirn | ||||||
| import sys | import sys | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| #!/usr/bin/env python | #!/usr/bin/env python | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| """ | """ | ||||||
| This script employs a VERY basic heuristic ('porn' in webpage.lower()) to check | This script employs a VERY basic heuristic ('porn' in webpage.lower()) to check | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import json | import json | ||||||
| import sys | import sys | ||||||
|   | |||||||
| @@ -1,4 +1,6 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import hashlib | import hashlib | ||||||
| import urllib.request | import urllib.request | ||||||
| import json | import json | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
|  | from __future__ import unicode_literals, with_statement | ||||||
|  |  | ||||||
| import rsa | import rsa | ||||||
| import json | import json | ||||||
| @@ -29,4 +30,5 @@ signature = hexlify(rsa.pkcs1.sign(json.dumps(versions_info, sort_keys=True).enc | |||||||
| print('signature: ' + signature) | print('signature: ' + signature) | ||||||
|  |  | ||||||
| versions_info['signature'] = signature | versions_info['signature'] = signature | ||||||
| json.dump(versions_info, open('update/versions.json', 'w'), indent=4, sort_keys=True) | with open('update/versions.json', 'w') as versionsf: | ||||||
|  |     json.dump(versions_info, versionsf, indent=4, sort_keys=True) | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| #!/usr/bin/env python | #!/usr/bin/env python | ||||||
| # coding: utf-8 | # coding: utf-8 | ||||||
|  |  | ||||||
| from __future__ import with_statement | from __future__ import with_statement, unicode_literals | ||||||
|  |  | ||||||
| import datetime | import datetime | ||||||
| import glob | import glob | ||||||
| @@ -13,7 +13,7 @@ year = str(datetime.datetime.now().year) | |||||||
| for fn in glob.glob('*.html*'): | for fn in glob.glob('*.html*'): | ||||||
|     with io.open(fn, encoding='utf-8') as f: |     with io.open(fn, encoding='utf-8') as f: | ||||||
|         content = f.read() |         content = f.read() | ||||||
|     newc = re.sub(u'(?P<copyright>Copyright © 2006-)(?P<year>[0-9]{4})', u'Copyright © 2006-' + year, content) |     newc = re.sub(r'(?P<copyright>Copyright © 2006-)(?P<year>[0-9]{4})', 'Copyright © 2006-' + year, content) | ||||||
|     if content != newc: |     if content != newc: | ||||||
|         tmpFn = fn + '.part' |         tmpFn = fn + '.part' | ||||||
|         with io.open(tmpFn, 'wt', encoding='utf-8') as outf: |         with io.open(tmpFn, 'wt', encoding='utf-8') as outf: | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import datetime | import datetime | ||||||
| import io | import io | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import sys | import sys | ||||||
| import os | import os | ||||||
|   | |||||||
| @@ -1,3 +1,5 @@ | |||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import io | import io | ||||||
| import sys | import sys | ||||||
| import re | import re | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import io | import io | ||||||
| import os.path | import os.path | ||||||
|   | |||||||
| @@ -1,4 +1,6 @@ | |||||||
| #!/usr/bin/env python | #!/usr/bin/env python | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import os | import os | ||||||
| from os.path import dirname as dirn | from os.path import dirname as dirn | ||||||
| import sys | import sys | ||||||
|   | |||||||
| @@ -9,14 +9,13 @@ rootDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |||||||
|  |  | ||||||
| IGNORED_FILES = [ | IGNORED_FILES = [ | ||||||
|     'setup.py',  # http://bugs.python.org/issue13943 |     'setup.py',  # http://bugs.python.org/issue13943 | ||||||
|  |     'conf.py', | ||||||
|  |     'buildserver.py', | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  |  | ||||||
| class TestUnicodeLiterals(unittest.TestCase): | class TestUnicodeLiterals(unittest.TestCase): | ||||||
|     def test_all_files(self): |     def test_all_files(self): | ||||||
|         print('Skipping this test (not yet fully implemented)') |  | ||||||
|         return |  | ||||||
|  |  | ||||||
|         for dirpath, _, filenames in os.walk(rootDir): |         for dirpath, _, filenames in os.walk(rootDir): | ||||||
|             for basename in filenames: |             for basename in filenames: | ||||||
|                 if not basename.endswith('.py'): |                 if not basename.endswith('.py'): | ||||||
| @@ -30,10 +29,10 @@ class TestUnicodeLiterals(unittest.TestCase): | |||||||
|  |  | ||||||
|                 if "'" not in code and '"' not in code: |                 if "'" not in code and '"' not in code: | ||||||
|                     continue |                     continue | ||||||
|                 imps = 'from __future__ import unicode_literals' |                 self.assertRegexpMatches( | ||||||
|                 self.assertTrue( |                     code, | ||||||
|                     imps in code, |                     r'(?:#.*\n*)?from __future__ import (?:[a-z_]+,\s*)*unicode_literals', | ||||||
|                     ' %s  missing in %s' % (imps, fn)) |                     'unicode_literals import  missing in %s' % fn) | ||||||
|  |  | ||||||
|                 m = re.search(r'(?<=\s)u[\'"](?!\)|,|$)', code) |                 m = re.search(r'(?<=\s)u[\'"](?!\)|,|$)', code) | ||||||
|                 if m is not None: |                 if m is not None: | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| #!/usr/bin/env python | #!/usr/bin/env python | ||||||
| # coding: utf-8 | # coding: utf-8 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| # Allow direct execution | # Allow direct execution | ||||||
| import os | import os | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| #!/usr/bin/env python | #!/usr/bin/env python | ||||||
| # coding: utf-8 | # coding: utf-8 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| # Allow direct execution | # Allow direct execution | ||||||
| import os | import os | ||||||
| @@ -32,7 +33,7 @@ params = get_params({ | |||||||
| TEST_ID = 'BaW_jenozKc' | TEST_ID = 'BaW_jenozKc' | ||||||
| INFO_JSON_FILE = TEST_ID + '.info.json' | INFO_JSON_FILE = TEST_ID + '.info.json' | ||||||
| DESCRIPTION_FILE = TEST_ID + '.mp4.description' | DESCRIPTION_FILE = TEST_ID + '.mp4.description' | ||||||
| EXPECTED_DESCRIPTION = u'''test chars:  "'/\ä↭𝕐 | EXPECTED_DESCRIPTION = '''test chars:  "'/\ä↭𝕐 | ||||||
| test URL: https://github.com/rg3/youtube-dl/issues/1892 | test URL: https://github.com/rg3/youtube-dl/issues/1892 | ||||||
|  |  | ||||||
| This is a test video for youtube-dl. | This is a test video for youtube-dl. | ||||||
| @@ -53,11 +54,11 @@ class TestInfoJSON(unittest.TestCase): | |||||||
|         self.assertTrue(os.path.exists(INFO_JSON_FILE)) |         self.assertTrue(os.path.exists(INFO_JSON_FILE)) | ||||||
|         with io.open(INFO_JSON_FILE, 'r', encoding='utf-8') as jsonf: |         with io.open(INFO_JSON_FILE, 'r', encoding='utf-8') as jsonf: | ||||||
|             jd = json.load(jsonf) |             jd = json.load(jsonf) | ||||||
|         self.assertEqual(jd['upload_date'], u'20121002') |         self.assertEqual(jd['upload_date'], '20121002') | ||||||
|         self.assertEqual(jd['description'], EXPECTED_DESCRIPTION) |         self.assertEqual(jd['description'], EXPECTED_DESCRIPTION) | ||||||
|         self.assertEqual(jd['id'], TEST_ID) |         self.assertEqual(jd['id'], TEST_ID) | ||||||
|         self.assertEqual(jd['extractor'], 'youtube') |         self.assertEqual(jd['extractor'], 'youtube') | ||||||
|         self.assertEqual(jd['title'], u'''youtube-dl test video "'/\ä↭𝕐''') |         self.assertEqual(jd['title'], '''youtube-dl test video "'/\ä↭𝕐''') | ||||||
|         self.assertEqual(jd['uploader'], 'Philipp Hagemeister') |         self.assertEqual(jd['uploader'], 'Philipp Hagemeister') | ||||||
|  |  | ||||||
|         self.assertTrue(os.path.exists(DESCRIPTION_FILE)) |         self.assertTrue(os.path.exists(DESCRIPTION_FILE)) | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| #!/usr/bin/env python | #!/usr/bin/env python | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| # Allow direct execution | # Allow direct execution | ||||||
| import os | import os | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| #!/usr/bin/env python | #!/usr/bin/env python | ||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| # Execute with | # Execute with | ||||||
| # $ python youtube_dl/__main__.py (2.6+) | # $ python youtube_dl/__main__.py (2.6+) | ||||||
|   | |||||||
| @@ -1,3 +1,5 @@ | |||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| __all__ = ['aes_encrypt', 'key_expansion', 'aes_ctr_decrypt', 'aes_cbc_decrypt', 'aes_decrypt_text'] | __all__ = ['aes_encrypt', 'key_expansion', 'aes_ctr_decrypt', 'aes_cbc_decrypt', 'aes_decrypt_text'] | ||||||
|  |  | ||||||
| import base64 | import base64 | ||||||
|   | |||||||
| @@ -1,3 +1,5 @@ | |||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| from .abc import ABCIE | from .abc import ABCIE | ||||||
| from .academicearth import AcademicEarthCourseIE | from .academicearth import AcademicEarthCourseIE | ||||||
| from .addanime import AddAnimeIE | from .addanime import AddAnimeIE | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ class BambuserIE(InfoExtractor): | |||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://bambuser.com/v/4050584', |         'url': 'http://bambuser.com/v/4050584', | ||||||
|         # MD5 seems to be flaky, see https://travis-ci.org/rg3/youtube-dl/jobs/14051016#L388 |         # MD5 seems to be flaky, see https://travis-ci.org/rg3/youtube-dl/jobs/14051016#L388 | ||||||
|         # u'md5': 'fba8f7693e48fd4e8641b3fd5539a641', |         # 'md5': 'fba8f7693e48fd4e8641b3fd5539a641', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': '4050584', |             'id': '4050584', | ||||||
|             'ext': 'flv', |             'ext': 'flv', | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| from .atomicparsley import AtomicParsleyPP | from .atomicparsley import AtomicParsleyPP | ||||||
| from .ffmpeg import ( | from .ffmpeg import ( | ||||||
|   | |||||||
| @@ -1,3 +1,5 @@ | |||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| from ..utils import PostProcessingError | from ..utils import PostProcessingError | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,3 +1,5 @@ | |||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import os | import os | ||||||
| import subprocess | import subprocess | ||||||
| import sys | import sys | ||||||
|   | |||||||
| @@ -1,2 +1,3 @@ | |||||||
|  | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| __version__ = '2014.11.26' | __version__ = '2014.11.26' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user