14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
from bzrlib.tests import TestCaseInTempDir
17
from bzrlib.tests import TestCaseInTempDir, TestSkipped
18
18
from bzrlib.win32utils import glob_expand
21
22
class Win32UtilsGlobExpand(TestCaseInTempDir):
25
super(Win32UtilsGlobExpand, self).setUp()
26
if sys.platform != 'win32':
27
raise TestSkipped('just for the Win32 platform')
23
29
def test_empty_tree(self):
24
30
self.build_tree([])
26
testset = [[['a'], ['a']],
29
[['a', 'a'], ['a', 'a']]]
31
self._run_testset(testset)
35
[['a', 'a'], ['a', 'a']]])
33
37
def test_tree1(self):
34
38
self.build_tree(['a', 'a1', 'a2', 'a11', 'a.1',
35
39
'b', 'b1', 'b2', 'b3',
36
40
'c/', 'c/c1', 'c/c2',
37
41
'd/', 'd/d1', 'd/d2'])
45
[['a', 'a' ], ['a', 'a']],
53
[['a*'], ['a', 'a1', 'a2', 'a11', 'a.1']],
54
[['?'], ['a', 'b', 'c', 'd']],
55
[['a?'], ['a1', 'a2']],
56
[['a??'], ['a11', 'a.1']],
57
[['b[1-2]'], ['b1', 'b2']],
58
[['A?'], ['a1', 'a2']],
60
[['d/*'], ['d\\d1', 'd\\d2']],
61
[['d\\*'], ['d\\d1', 'd\\d2']],
62
[['?\\*'], ['c\\c1', 'c\\c2', 'd\\d1', 'd\\d2']],
63
[['*\\*'], ['c\\c1', 'c\\c2', 'd\\d1', 'd\\d2']],
64
[['*/'], ['c\\', 'd\\']],
65
[['*\\'], ['c\\', 'd\\']]])
39
testset = [# no wildcards
41
[['a', 'a' ], ['a', 'a']],
49
[['a*'], ['a', 'a1', 'a2', 'a11', 'a.1']],
50
[['?'], ['a', 'b', 'c', 'd']],
51
[['a?'], ['a1', 'a2']],
52
[['a??'], ['a11', 'a.1']],
53
[['b[1-2]'], ['b1', 'b2']],
54
[['A?'], ['a1', 'a2']],
56
[['d/*'], ['d\\d1', 'd\\d2']],
57
[['d\\*'], ['d\\d1', 'd\\d2']],
58
[['?\\*'], ['c\\c1', 'c\\c2', 'd\\d1', 'd\\d2']],
59
[['*\\*'], ['c\\c1', 'c\\c2', 'd\\d1', 'd\\d2']],
60
[['*/'], ['c\\', 'd\\']],
61
[['*\\'], ['c\\', 'd\\']]]
63
self._run_testset(testset)
65
67
def _run_testset(self, testset):
66
68
for pattern, expected in testset:
67
69
result = glob_expand(pattern)
70
72
self.assertEqual(expected, result, 'pattern %s' % pattern)