blob: c7e5201b1725fbc33481178aa421eec29ffd076b [file] [log] [blame]
Tarek Ziadé889b0aa2009-04-05 21:49:36 +00001"""Tests for distutils.filelist."""
2import unittest
Tarek Ziadé83496692009-09-21 13:10:05 +00003
4from distutils.filelist import glob_to_re, FileList
Éric Araujob344dd02011-02-02 21:38:37 +00005from test.support import captured_stdout, run_unittest
Tarek Ziadé83496692009-09-21 13:10:05 +00006from distutils import debug
Tarek Ziadé889b0aa2009-04-05 21:49:36 +00007
8class FileListTestCase(unittest.TestCase):
9
10 def test_glob_to_re(self):
11 # simple cases
Ezio Melotti19f2aeb2010-11-21 01:30:29 +000012 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)')
Tarek Ziadé889b0aa2009-04-05 21:49:36 +000015
16 # special cases
Ezio Melotti19f2aeb2010-11-21 01:30:29 +000017 self.assertEqual(glob_to_re(r'foo\\*'), r'foo\\\\[^/]*\Z(?ms)')
18 self.assertEqual(glob_to_re(r'foo\\\*'), r'foo\\\\\\[^/]*\Z(?ms)')
19 self.assertEqual(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]\Z(?ms)')
20 self.assertEqual(glob_to_re(r'foo\\??'), r'foo\\\\[^/][^/]\Z(?ms)')
Tarek Ziadé889b0aa2009-04-05 21:49:36 +000021
Tarek Ziadé83496692009-09-21 13:10:05 +000022 def test_debug_print(self):
23 file_list = FileList()
24 with captured_stdout() as stdout:
25 file_list.debug_print('xxx')
26 stdout.seek(0)
Ezio Melotti19f2aeb2010-11-21 01:30:29 +000027 self.assertEqual(stdout.read(), '')
Tarek Ziadé83496692009-09-21 13:10:05 +000028
29 debug.DEBUG = True
30 try:
31 with captured_stdout() as stdout:
32 file_list.debug_print('xxx')
33 stdout.seek(0)
Ezio Melotti19f2aeb2010-11-21 01:30:29 +000034 self.assertEqual(stdout.read(), 'xxx\n')
Tarek Ziadé83496692009-09-21 13:10:05 +000035 finally:
36 debug.DEBUG = False
37
Tarek Ziadé889b0aa2009-04-05 21:49:36 +000038def test_suite():
39 return unittest.makeSuite(FileListTestCase)
40
41if __name__ == "__main__":
Éric Araujob344dd02011-02-02 21:38:37 +000042 run_unittest(test_suite())