summaryrefslogtreecommitdiff
path: root/src/python/stdlib/distutils/tests/test_filelist.py
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2011-03-22 17:58:52 (GMT)
committer Simon <simon@hardwired.org.uk>2011-03-22 17:58:52 (GMT)
commit2e401babb793238564ca640fc802a52ab7f6c293 (patch)
tree87a9b471e82604e76f96d556f5771322fb31818a /src/python/stdlib/distutils/tests/test_filelist.py
parentc096b2b14a200a0cc0a08cfea839c9e7f4edf22e (diff)
parent04a9cbcb8855e64db660a8c6e23d79114b4afd83 (diff)
downloadpowder-2e401babb793238564ca640fc802a52ab7f6c293.zip
powder-2e401babb793238564ca640fc802a52ab7f6c293.tar.gz
Python console
Diffstat (limited to 'src/python/stdlib/distutils/tests/test_filelist.py')
-rw-r--r--src/python/stdlib/distutils/tests/test_filelist.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/python/stdlib/distutils/tests/test_filelist.py b/src/python/stdlib/distutils/tests/test_filelist.py
new file mode 100644
index 0000000..32c56c7
--- /dev/null
+++ b/src/python/stdlib/distutils/tests/test_filelist.py
@@ -0,0 +1,85 @@
+"""Tests for distutils.filelist."""
+from os.path import join
+import unittest
+from test.test_support import captured_stdout
+
+from distutils.filelist import glob_to_re, FileList
+from distutils import debug
+
+MANIFEST_IN = """\
+include ok
+include xo
+exclude xo
+include foo.tmp
+global-include *.x
+global-include *.txt
+global-exclude *.tmp
+recursive-include f *.oo
+recursive-exclude global *.x
+graft dir
+prune dir3
+"""
+
+class FileListTestCase(unittest.TestCase):
+
+ def test_glob_to_re(self):
+ # simple cases
+ self.assertEqual(glob_to_re('foo*'), 'foo[^/]*\\Z(?ms)')
+ self.assertEqual(glob_to_re('foo?'), 'foo[^/]\\Z(?ms)')
+ self.assertEqual(glob_to_re('foo??'), 'foo[^/][^/]\\Z(?ms)')
+
+ # special cases
+ self.assertEqual(glob_to_re(r'foo\\*'), r'foo\\\\[^/]*\Z(?ms)')
+ self.assertEqual(glob_to_re(r'foo\\\*'), r'foo\\\\\\[^/]*\Z(?ms)')
+ self.assertEqual(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]\Z(?ms)')
+ self.assertEqual(glob_to_re(r'foo\\??'), r'foo\\\\[^/][^/]\Z(?ms)')
+
+ def test_process_template_line(self):
+ # testing all MANIFEST.in template patterns
+ file_list = FileList()
+
+ # simulated file list
+ file_list.allfiles = ['foo.tmp', 'ok', 'xo', 'four.txt',
+ join('global', 'one.txt'),
+ join('global', 'two.txt'),
+ join('global', 'files.x'),
+ join('global', 'here.tmp'),
+ join('f', 'o', 'f.oo'),
+ join('dir', 'graft-one'),
+ join('dir', 'dir2', 'graft2'),
+ join('dir3', 'ok'),
+ join('dir3', 'sub', 'ok.txt')
+ ]
+
+ for line in MANIFEST_IN.split('\n'):
+ if line.strip() == '':
+ continue
+ file_list.process_template_line(line)
+
+ wanted = ['ok', 'four.txt', join('global', 'one.txt'),
+ join('global', 'two.txt'), join('f', 'o', 'f.oo'),
+ join('dir', 'graft-one'), join('dir', 'dir2', 'graft2')]
+
+ self.assertEqual(file_list.files, wanted)
+
+ def test_debug_print(self):
+ file_list = FileList()
+ with captured_stdout() as stdout:
+ file_list.debug_print('xxx')
+ stdout.seek(0)
+ self.assertEqual(stdout.read(), '')
+
+ debug.DEBUG = True
+ try:
+ with captured_stdout() as stdout:
+ file_list.debug_print('xxx')
+ stdout.seek(0)
+ self.assertEqual(stdout.read(), 'xxx\n')
+ finally:
+ debug.DEBUG = False
+
+def test_suite():
+ return unittest.makeSuite(FileListTestCase)
+
+if __name__ == "__main__":
+ unittest.main(defaultTest="test_suite")