youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

test_unicode_literals.py (1894B)


      1 from __future__ import unicode_literals
      2 
      3 # Allow direct execution
      4 import os
      5 import sys
      6 import unittest
      7 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
      8 
      9 import io
     10 import re
     11 
     12 rootDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
     13 
     14 IGNORED_FILES = [
     15     'setup.py',  # http://bugs.python.org/issue13943
     16     'conf.py',
     17     'buildserver.py',
     18 ]
     19 
     20 IGNORED_DIRS = [
     21     '.git',
     22     '.tox',
     23 ]
     24 
     25 from test.helper import assertRegexpMatches
     26 
     27 
     28 class TestUnicodeLiterals(unittest.TestCase):
     29     def test_all_files(self):
     30         for dirpath, dirnames, filenames in os.walk(rootDir):
     31             for ignore_dir in IGNORED_DIRS:
     32                 if ignore_dir in dirnames:
     33                     # If we remove the directory from dirnames os.walk won't
     34                     # recurse into it
     35                     dirnames.remove(ignore_dir)
     36             for basename in filenames:
     37                 if not basename.endswith('.py'):
     38                     continue
     39                 if basename in IGNORED_FILES:
     40                     continue
     41 
     42                 fn = os.path.join(dirpath, basename)
     43                 with io.open(fn, encoding='utf-8') as inf:
     44                     code = inf.read()
     45 
     46                 if "'" not in code and '"' not in code:
     47                     continue
     48                 assertRegexpMatches(
     49                     self,
     50                     code,
     51                     r'(?:(?:#.*?|\s*)\n)*from __future__ import (?:[a-z_]+,\s*)*unicode_literals',
     52                     'unicode_literals import  missing in %s' % fn)
     53 
     54                 m = re.search(r'(?<=\s)u[\'"](?!\)|,|$)', code)
     55                 if m is not None:
     56                     self.assertTrue(
     57                         m is None,
     58                         'u present in %s, around %s' % (
     59                             fn, code[m.start() - 10:m.end() + 10]))
     60 
     61 
     62 if __name__ == '__main__':
     63     unittest.main()