Commit 1c8c9d12 authored by Tarek Ziadé's avatar Tarek Ziadé

added more test coverage for distutils.filelist to prevent regressions when...

added more test coverage for distutils.filelist to prevent regressions when fnmatch or re are changed
parent e2f35c35
...@@ -115,7 +115,7 @@ class FileList: ...@@ -115,7 +115,7 @@ class FileList:
# defined: it's the first word of the line. Which of the other # defined: it's the first word of the line. Which of the other
# three are defined depends on the action; it'll be either # three are defined depends on the action; it'll be either
# patterns, (dir and patterns), or (dir_pattern). # patterns, (dir and patterns), or (dir_pattern).
(action, patterns, dir, dir_pattern) = self._parse_template_line(line) action, patterns, dir, dir_pattern = self._parse_template_line(line)
# OK, now we know that the action is valid and we have the # OK, now we know that the action is valid and we have the
# right number of words on the line for that action -- so we # right number of words on the line for that action -- so we
...@@ -182,9 +182,6 @@ class FileList: ...@@ -182,9 +182,6 @@ class FileList:
raise DistutilsInternalError, \ raise DistutilsInternalError, \
"this cannot happen: invalid action '%s'" % action "this cannot happen: invalid action '%s'" % action
# process_template_line ()
# -- Filtering/selection methods ----------------------------------- # -- Filtering/selection methods -----------------------------------
def include_pattern(self, pattern, anchor=1, prefix=None, is_regex=0): def include_pattern(self, pattern, anchor=1, prefix=None, is_regex=0):
......
"""Tests for distutils.filelist.""" """Tests for distutils.filelist."""
from os.path import join
import unittest import unittest
from distutils.filelist import glob_to_re from distutils.filelist import glob_to_re, FileList
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): class FileListTestCase(unittest.TestCase):
...@@ -16,6 +31,34 @@ class FileListTestCase(unittest.TestCase): ...@@ -16,6 +31,34 @@ class FileListTestCase(unittest.TestCase):
self.assertEquals(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]\Z(?ms)') self.assertEquals(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]\Z(?ms)')
self.assertEquals(glob_to_re(r'foo\\??'), r'foo\\\\[^/][^/]\Z(?ms)') self.assertEquals(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', join('global', 'one.txt'), join('global', 'two.txt'),
'four.txt', join('f', 'o', 'f.oo'), join('dir', 'graft-one'),
join('dir', 'dir2', 'graft2')]
self.assertEquals(file_list.files, wanted)
def test_suite(): def test_suite():
return unittest.makeSuite(FileListTestCase) return unittest.makeSuite(FileListTestCase)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment