~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_globbing.py

  • Committer: Kent Gibson
  • Date: 2006-12-08 12:59:11 UTC
  • mto: (2178.1.1 jam-integration)
  • mto: This revision was merged to the branch mainline in revision 2179.
  • Revision ID: warthog618@gmail.com-20061208125911-wsnbxy7aydzjb47s
Implement JAM's review suggestions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
# along with this program; if not, write to the Free Software
16
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
17
 
18
 
from bzrlib.tests import TestCase, TestCaseInTempDir
19
 
 
20
 
from bzrlib.glob import (
21
 
        Globster
22
 
        )
 
18
from bzrlib.globbing import (
 
19
    Globster,
 
20
    )
 
21
from bzrlib.tests import (
 
22
    TestCase, 
 
23
    TestCaseInTempDir,
 
24
    )
23
25
 
24
26
 
25
27
class TestGlobster(TestCase):
38
40
                    u'name "%s" does match glob "%s" (re=%s)' %
39
41
                    (name, glob, globster._regex_patterns[0][0].pattern)))
40
42
 
41
 
    def test_char_groups(self):
42
 
        # The definition of digit this uses includes arabic digits from
43
 
        # non-latin scripts (arabic, indic, etc.) and subscript/superscript
44
 
        # digits, but neither roman numerals nor vulgar fractions.
 
43
    def test_char_group_digit(self):
45
44
        matchset = [
 
45
            # The definition of digit this uses includes arabic digits from
 
46
            # non-latin scripts (arabic, indic, etc.) and subscript/superscript
 
47
            # digits, but neither roman numerals nor vulgar fractions.
46
48
            (u'[[:digit:]]',
47
49
             [u'0', u'5', u'\u0663', u'\u06f9', u'\u0f21', u'\xb9'],
48
50
             [u'T', u'q', u' ', u'\u8336', u'.']),
 
51
            (u'[^[:digit:]]',
 
52
             [u'T', u'q', u' ', u'\u8336', u'.'],
 
53
             [u'0', u'5', u'\u0663', u'\u06f9', u'\u0f21', u'\xb9']),
 
54
            ]
 
55
        # test basename matcher
 
56
        self.assertMatch(matchset)
 
57
        # test fullpath matcher
 
58
        self.assertMatch(matchset, glob_prefix='./')
 
59
 
 
60
    def test_char_group_space(self):
 
61
        matchset = [
49
62
            (u'[[:space:]]',
50
63
             [u' ', u'\t', u'\n', u'\xa0', u'\u2000', u'\u2002'],
51
64
             [u'a', u'-', u'\u8336', u'.']),
52
65
            (u'[^[:space:]]',
53
66
             [u'a', u'-', u'\u8336', u'.'],
54
67
             [u' ', u'\t', u'\n', u'\xa0', u'\u2000', u'\u2002']),
 
68
            ]
 
69
        # test basename matcher
 
70
        self.assertMatch(matchset)
 
71
        # test fullpath matcher
 
72
        self.assertMatch(matchset, glob_prefix='./')
 
73
 
 
74
    def test_char_group_alnum(self):
 
75
        matchset = [
55
76
            (u'[[:alnum:]]',
56
77
             [u'a', u'Z', u'\u017e', u'\u8336'],
57
78
             [u':', u'-', u'\u25cf', u'.']),
58
79
            (u'[^[:alnum:]]',
59
80
             [u':', u'-', u'\u25cf', u'.'],
60
81
             [u'a']),
 
82
            ]
 
83
        # test basename matcher
 
84
        self.assertMatch(matchset)
 
85
        # test fullpath matcher
 
86
        self.assertMatch(matchset, glob_prefix='./')
 
87
 
 
88
    def test_char_group_ascii(self):
 
89
        matchset = [
61
90
            (u'[[:ascii:]]',
62
91
             [u'a', u'Q', u'^', u'.'],
63
92
             [u'\xcc', u'\u8336']),
64
93
            (u'[^[:ascii:]]',
65
94
             [u'\xcc', u'\u8336'],
66
95
             [u'a', u'Q', u'^', u'.']),
 
96
            ]
 
97
        # test basename matcher
 
98
        self.assertMatch(matchset)
 
99
        # test fullpath matcher
 
100
        self.assertMatch(matchset, glob_prefix='./')
 
101
 
 
102
    def test_char_group_blank(self):
 
103
        matchset = [
67
104
            (u'[[:blank:]]',
68
105
             [u'\t'],
69
106
             [u'x', u'y', u'z', u'.']),
70
107
            (u'[^[:blank:]]',
71
108
             [u'x', u'y', u'z', u'.'],
72
109
             [u'\t']),
 
110
            ]
 
111
        # test basename matcher
 
112
        self.assertMatch(matchset)
 
113
        # test fullpath matcher
 
114
        self.assertMatch(matchset, glob_prefix='./')
 
115
 
 
116
    def test_char_group_cntrl(self):
 
117
        matchset = [
73
118
            (u'[[:cntrl:]]',
74
119
             [u'\b', u'\t', '\x7f'],
75
120
             [u'a', u'Q', u'\u8336', u'.']),
 
121
            (u'[^[:cntrl:]]',
 
122
             [u'a', u'Q', u'\u8336', u'.'],
 
123
             [u'\b', u'\t', '\x7f']),
 
124
            ]
 
125
        # test basename matcher
 
126
        self.assertMatch(matchset)
 
127
        # test fullpath matcher
 
128
        self.assertMatch(matchset, glob_prefix='./')
 
129
 
 
130
    def test_char_groups(self):
 
131
        matchset = [
76
132
            (u'[a-z]',
77
133
             [u'a', u'q', u'f'],
78
134
             [u'A', u'Q', u'F']),
87
143
             [u'foojbar']),
88
144
            (ur'[\x20-\x30\u8336]',
89
145
             [u'\040', u'\044', u'\u8336'],
90
 
             []),
 
146
             [u'\x1f']),
91
147
            (ur'[^\x20-\x30\u8336]',
92
 
             [],
 
148
             [u'\x1f'],
93
149
             [u'\040', u'\044', u'\u8336']),
94
150
            ]
 
151
        # test basename matcher
95
152
        self.assertMatch(matchset)
96
 
        self.assertMatch(matchset,glob_prefix='./')
 
153
        # test fullpath matcher
 
154
        self.assertMatch(matchset, glob_prefix='./')
97
155
 
98
156
    def test_regex(self):
99
157
        self.assertMatch([