~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_globbing.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-03-17 12:03:04 UTC
  • mfrom: (4156.1.1 cleanup.various)
  • Revision ID: pqm@pqm.ubuntu.com-20090317120304-4brn8hqgc79ybdhx
(vila) Trivial spelling correction to "bzr missing" documentation

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
from bzrlib.globbing import (
19
19
    Globster,
 
20
    _OrderedGlobster,
20
21
    )
21
22
from bzrlib.tests import (
22
 
    TestCase, 
 
23
    TestCase,
23
24
    TestCaseInTempDir,
24
25
    )
25
26
 
170
171
             [u'foo/x', u'foo/bax', u'foo/a.x', u'foo/.x', u'foo/.q.x'],
171
172
             [u'foo/bar/bax']),
172
173
            (u'*/*x',
173
 
             [u'\u8336/x', u'foo/x', u'foo/bax', u'x/a.x', u'.foo/x', 
 
174
             [u'\u8336/x', u'foo/x', u'foo/bax', u'x/a.x', u'.foo/x',
174
175
              u'\u8336/.x', u'foo/.q.x'],
175
176
             [u'foo/bar/bax']),
176
177
            (u'f*',
177
178
             [u'foo', u'foo.bar'],
178
179
             [u'.foo', u'foo/bar', u'foo/.bar']),
179
180
            (u'*bar',
180
 
             [u'bar', u'foobar', ur'foo\nbar', u'foo.bar', u'foo/bar', 
 
181
             [u'bar', u'foobar', ur'foo\nbar', u'foo.bar', u'foo/bar',
181
182
              u'foo/foobar', u'foo/f.bar', u'.bar', u'foo/.bar'],
182
183
             []),
183
184
            ])
190
191
             [u'foox', u'foo/bax', u'foo/.x', u'foo/bar/bax']),
191
192
            (u'**/bar',
192
193
             [u'bar', u'foo/bar'],
193
 
             [u'foobar', u'foo.bar', u'foo/foobar', u'foo/f.bar', 
 
194
             [u'foobar', u'foo.bar', u'foo/foobar', u'foo/f.bar',
194
195
              u'.bar', u'foo/.bar']),
195
196
            # check that we ignore extra *s, so *** is treated like ** not *.
196
197
            (u'foo/***/x',
198
199
             [u'foox', u'foo/bax', u'foo/.x', u'foo/bar/bax']),
199
200
            (u'***/bar',
200
201
             [u'bar', u'foo/bar'],
201
 
             [u'foobar', u'foo.bar', u'foo/foobar', u'foo/f.bar', 
 
202
             [u'foobar', u'foo.bar', u'foo/foobar', u'foo/f.bar',
202
203
              u'.bar', u'foo/.bar']),
203
204
            # the remaining tests check that ** is interpreted as *
204
205
            # unless it is a whole path component
215
216
             [u'foo', u'foo.bar'],
216
217
             [u'.foo', u'foo/bar', u'foo/.bar']),
217
218
            (u'**bar',
218
 
             [u'bar', u'foobar', ur'foo\nbar', u'foo.bar', u'foo/bar', 
 
219
             [u'bar', u'foobar', ur'foo\nbar', u'foo.bar', u'foo/bar',
219
220
              u'foo/foobar', u'foo/f.bar', u'.bar', u'foo/.bar'],
220
221
             []),
221
222
            ])
256
257
    def test_leading_asterisk_dot(self):
257
258
        self.assertMatch([
258
259
            (u'*.x',
259
 
             [u'foo/bar/baz.x', u'\u8336/Q.x', u'foo.y.x', u'.foo.x', 
 
260
             [u'foo/bar/baz.x', u'\u8336/Q.x', u'foo.y.x', u'.foo.x',
260
261
              u'bar/.foo.x', u'.x',],
261
262
             [u'foo.x.y']),
262
263
            (u'foo/*.bar',
292
293
    def test_large_globset(self):
293
294
        """tests that the globster can handle a large set of patterns.
294
295
 
295
 
        Large is defined as more than supported by python regex groups, 
 
296
        Large is defined as more than supported by python regex groups,
296
297
        i.e. 99.
297
298
        This test assumes the globs are broken into regexs containing 99
298
299
        groups.
305
306
            self.assertEqual(patterns[x],globster.match(filename))
306
307
        self.assertEqual(None,globster.match('foobar.300'))
307
308
 
 
309
 
 
310
class TestOrderedGlobster(TestCase):
 
311
 
 
312
    def test_ordered_globs(self):
 
313
        """test that the first match in a list is the one found"""
 
314
        patterns = [ u'*.foo', u'bar.*']
 
315
        globster = _OrderedGlobster(patterns)
 
316
        self.assertEqual(u'*.foo', globster.match('bar.foo'))
 
317
        self.assertEqual(None, globster.match('foo.bar'))
 
318
        globster = _OrderedGlobster(reversed(patterns))
 
319
        self.assertEqual(u'bar.*', globster.match('bar.foo'))
 
320
        self.assertEqual(None, globster.match('foo.bar'))