Exemplo n.º 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)))
Exemplo n.º 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'))
Exemplo n.º 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)
Exemplo n.º 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'))
Exemplo n.º 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)