test_filelist.py (2638B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\test_filelist.py 2 from os.path import join 3 import unittest 4 from test.test_support import captured_stdout 5 from distutils.filelist import glob_to_re, FileList 6 from distutils import debug 7 MANIFEST_IN = 'include ok\ninclude xo\nexclude xo\ninclude foo.tmp\nglobal-include *.x\nglobal-include *.txt\nglobal-exclude *.tmp\nrecursive-include f *.oo\nrecursive-exclude global *.x\ngraft dir\nprune dir3\n' 8 9 class FileListTestCase(unittest.TestCase): 10 11 def test_glob_to_re(self): 12 self.assertEqual(glob_to_re('foo*'), 'foo[^/]*\\Z(?ms)') 13 self.assertEqual(glob_to_re('foo?'), 'foo[^/]\\Z(?ms)') 14 self.assertEqual(glob_to_re('foo??'), 'foo[^/][^/]\\Z(?ms)') 15 self.assertEqual(glob_to_re('foo\\\\*'), 'foo\\\\\\\\[^/]*\\Z(?ms)') 16 self.assertEqual(glob_to_re('foo\\\\\\*'), 'foo\\\\\\\\\\\\[^/]*\\Z(?ms)') 17 self.assertEqual(glob_to_re('foo????'), 'foo[^/][^/][^/][^/]\\Z(?ms)') 18 self.assertEqual(glob_to_re('foo\\\\??'), 'foo\\\\\\\\[^/][^/]\\Z(?ms)') 19 20 def test_process_template_line(self): 21 file_list = FileList() 22 file_list.allfiles = ['foo.tmp', 23 'ok', 24 'xo', 25 'four.txt', 26 join('global', 'one.txt'), 27 join('global', 'two.txt'), 28 join('global', 'files.x'), 29 join('global', 'here.tmp'), 30 join('f', 'o', 'f.oo'), 31 join('dir', 'graft-one'), 32 join('dir', 'dir2', 'graft2'), 33 join('dir3', 'ok'), 34 join('dir3', 'sub', 'ok.txt')] 35 for line in MANIFEST_IN.split('\n'): 36 if line.strip() == '': 37 continue 38 file_list.process_template_line(line) 39 40 wanted = ['ok', 41 'four.txt', 42 join('global', 'one.txt'), 43 join('global', 'two.txt'), 44 join('f', 'o', 'f.oo'), 45 join('dir', 'graft-one'), 46 join('dir', 'dir2', 'graft2')] 47 self.assertEqual(file_list.files, wanted) 48 49 def test_debug_print(self): 50 file_list = FileList() 51 with captured_stdout() as stdout: 52 file_list.debug_print('xxx') 53 stdout.seek(0) 54 self.assertEqual(stdout.read(), '') 55 debug.DEBUG = True 56 try: 57 with captured_stdout() as stdout: 58 file_list.debug_print('xxx') 59 stdout.seek(0) 60 self.assertEqual(stdout.read(), 'xxx\n') 61 finally: 62 debug.DEBUG = False 63 64 65 def test_suite(): 66 return unittest.makeSuite(FileListTestCase) 67 68 69 if __name__ == '__main__': 70 unittest.main(defaultTest='test_suite')