コード例 #1
0
ファイル: test_globbing.py プロジェクト: saminigod/cygwin
 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
ファイル: test_globbing.py プロジェクト: saminigod/cygwin
    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
ファイル: test_globbing.py プロジェクト: saminigod/cygwin
    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)