Пример #1
0
 def assertMatch(self, matchset, glob_prefix=None):
     for glob, positive, negative in matchset:
         if glob_prefix:
             glob = glob_prefix + glob
         globster = Globster([glob])
         for name in positive:
             self.failUnless(globster.match(name), repr(
                 u'name "%s" does not match glob "%s" (re=%s)' %
                 (name, glob, globster._regex_patterns[0][0].pattern)))
         for name in negative:
             self.failIf(globster.match(name), repr(
                 u'name "%s" does match glob "%s" (re=%s)' %
                 (name, glob, globster._regex_patterns[0][0].pattern)))
Пример #2
0
    def test_large_globset(self):
        """tests that the globster can handle a large set of patterns.

        Large is defined as more than supported by python regex groups, 
        i.e. 99.
        This test assumes the globs are broken into regexs containing 99
        groups.
        """
        patterns = [ u'*.%03d' % i for i in xrange(0,300) ]
        globster = Globster(patterns)
        # test the fence posts
        for x in (0,98,99,197,198,296,297,299):
            filename = u'foo.%03d' % x
            self.assertEqual(patterns[x],globster.match(filename))
        self.assertEqual(None,globster.match('foobar.300'))
Пример #3
0
 def test_bad_pattern(self):
     """Ensure that globster handles bad patterns cleanly."""
     patterns = [u'RE:[', u'/home/foo', u'RE:*.cpp']
     g = Globster(patterns)
     e = self.assertRaises(errors.InvalidPattern, g.match, 'filename')
     self.assertContainsRe(
         e.msg,
         "File.*ignore.*contains error.*RE:\[.*RE:\*\.cpp",
         flags=re.DOTALL)
Пример #4
0
    def test_mixed_globs(self):
        """tests handling of combinations of path type matches.

        The types being extension, basename and full path.
        """
        patterns = [ u'*.foo', u'.*.swp', u'./*.png']
        globster = Globster(patterns)
        self.assertEqual(u'*.foo', globster.match('bar.foo'))
        self.assertEqual(u'./*.png', globster.match('foo.png'))
        self.assertEqual(None, globster.match('foo/bar.png'))
        self.assertEqual(u'.*.swp', globster.match('foo/.bar.py.swp'))
Пример #5
0
 def _update_items(self, pattern, action, method):
     globster = Globster([pattern])
     for filename, item in self.unknowns.iteritems():
         if globster.match(filename) is not None:
             method(item, pattern, action)