aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-11-26 20:01:20 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2014-11-26 20:01:22 +0100
commitdcddc10a5032996474e157946b00b8df039eebda (patch)
treec0203ee3349bcae04bab970657e391f4fc255736 /test
parenta1008af412f51aac82c121eaed07f742055d010b (diff)
downloadyoutube-dl-dcddc10a5032996474e157946b00b8df039eebda.tar.xz
[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.
Diffstat (limited to 'test')
-rw-r--r--test/test_unicode_literals.py13
-rw-r--r--test/test_write_annotations.py1
-rw-r--r--test/test_write_info_json.py7
-rw-r--r--test/test_youtube_lists.py1
4 files changed, 12 insertions, 10 deletions
diff --git a/test/test_unicode_literals.py b/test/test_unicode_literals.py
index a4ba7bad0..2cc431b0b 100644
--- a/test/test_unicode_literals.py
+++ b/test/test_unicode_literals.py
@@ -9,14 +9,13 @@ rootDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
IGNORED_FILES = [
'setup.py', # http://bugs.python.org/issue13943
+ 'conf.py',
+ 'buildserver.py',
]
class TestUnicodeLiterals(unittest.TestCase):
def test_all_files(self):
- print('Skipping this test (not yet fully implemented)')
- return
-
for dirpath, _, filenames in os.walk(rootDir):
for basename in filenames:
if not basename.endswith('.py'):
@@ -30,10 +29,10 @@ class TestUnicodeLiterals(unittest.TestCase):
if "'" not in code and '"' not in code:
continue
- imps = 'from __future__ import unicode_literals'
- self.assertTrue(
- imps in code,
- ' %s missing in %s' % (imps, fn))
+ self.assertRegexpMatches(
+ code,
+ r'(?:#.*\n*)?from __future__ import (?:[a-z_]+,\s*)*unicode_literals',
+ 'unicode_literals import missing in %s' % fn)
m = re.search(r'(?<=\s)u[\'"](?!\)|,|$)', code)
if m is not None:
diff --git a/test/test_write_annotations.py b/test/test_write_annotations.py
index 852553ada..780636c77 100644
--- a/test/test_write_annotations.py
+++ b/test/test_write_annotations.py
@@ -1,5 +1,6 @@
#!/usr/bin/env python
# coding: utf-8
+from __future__ import unicode_literals
# Allow direct execution
import os
diff --git a/test/test_write_info_json.py b/test/test_write_info_json.py
index 90426a559..0396ef262 100644
--- a/test/test_write_info_json.py
+++ b/test/test_write_info_json.py
@@ -1,5 +1,6 @@
#!/usr/bin/env python
# coding: utf-8
+from __future__ import unicode_literals
# Allow direct execution
import os
@@ -32,7 +33,7 @@ params = get_params({
TEST_ID = 'BaW_jenozKc'
INFO_JSON_FILE = TEST_ID + '.info.json'
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
This is a test video for youtube-dl.
@@ -53,11 +54,11 @@ class TestInfoJSON(unittest.TestCase):
self.assertTrue(os.path.exists(INFO_JSON_FILE))
with io.open(INFO_JSON_FILE, 'r', encoding='utf-8') as 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['id'], TEST_ID)
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.assertTrue(os.path.exists(DESCRIPTION_FILE))
diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py
index 4ceba64ae..c889b6f15 100644
--- a/test/test_youtube_lists.py
+++ b/test/test_youtube_lists.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from __future__ import unicode_literals
# Allow direct execution
import os