| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- from panda3d.core import GlobPattern
- def test_globpattern_matches_file():
- patt = GlobPattern('/a/b/c')
- assert patt.matches_file('/a/b/c')
- assert patt.matches_file('///a////b//c')
- assert patt.matches_file('/a/b/././c')
- assert not patt.matches_file('')
- assert not patt.matches_file('/')
- assert not patt.matches_file('/a/b/d')
- assert not patt.matches_file('/A/b/c')
- assert not patt.matches_file('/a/b/c/')
- assert not patt.matches_file('/a/b/c/.')
- assert not patt.matches_file('a/b/c')
- assert not patt.matches_file('./a/b/c')
- # Test regular pattern
- patt = GlobPattern('*a')
- assert patt.matches_file('a')
- assert patt.matches_file('aa')
- assert patt.matches_file('xa')
- assert not patt.matches_file('A')
- assert not patt.matches_file('ax')
- assert not patt.matches_file('xax')
- # Test path ending in directory
- for patt in GlobPattern('/a/b/c/'), \
- GlobPattern('/a/b/c/.'), \
- GlobPattern('/a/b//c//'), \
- GlobPattern('/a/b/./c/./'):
- assert patt.matches_file('/a/b/c/')
- assert patt.matches_file('///a////b//c//')
- assert patt.matches_file('/a/b/././c/')
- assert patt.matches_file('/a/b/c/.')
- assert not patt.matches_file('/a/b/c')
- assert not patt.matches_file('/a/b/c/./d')
- assert not patt.matches_file('a/b/c/')
- assert not patt.matches_file('./a/b/c/')
- # Test globstar in middle
- for patt in GlobPattern('/a/**/c'), GlobPattern('/a/**/**/c'):
- assert patt.matches_file('/a/c')
- assert patt.matches_file('/a/b/c')
- assert patt.matches_file('/a/b/d/c')
- assert not patt.matches_file('/a/b/c/d')
- assert not patt.matches_file('/d/b/c')
- assert not patt.matches_file('/a/b/d')
- # Test globstar in beginning
- for patt in GlobPattern('/**/b/c'), GlobPattern('/**/**/**/b/c'):
- assert patt.matches_file('/a/b/c')
- assert patt.matches_file('/a/d/b/c')
- assert patt.matches_file('/a/b/c')
- assert patt.matches_file('/a/b/c/./b//c')
- assert not patt.matches_file('/a/b/c/d')
- assert not patt.matches_file('/a/c')
- assert not patt.matches_file('/a/b/d')
- # Test globstar at end
- for patt in GlobPattern('/a/b/**'), \
- GlobPattern('/a/b/**/**'), \
- GlobPattern('/a/b//**//**/**'):
- assert patt.matches_file('/a/b/')
- assert patt.matches_file('/a/b/.')
- assert patt.matches_file('/a/b//')
- assert patt.matches_file('/a/b/c')
- assert patt.matches_file('/a/b/c/d/e/f/g/h')
- assert patt.matches_file('/a/b/d/c')
- assert not patt.matches_file('/a/')
- assert not patt.matches_file('/a/c/b')
- # Test multiple globstars at multiple locations
- patt = GlobPattern('/a/**/b/**/c')
- assert patt.matches_file('/a/b/c')
- assert patt.matches_file('/a/./b/./c')
- assert patt.matches_file('/a//b//c')
- assert patt.matches_file('/a/x/y/b/c')
- assert patt.matches_file('/a/b/x/y/c')
- assert patt.matches_file('/a/b/c/a/b/c')
- assert patt.matches_file('/a/x/y/b/x/y/c')
- assert not patt.matches_file('/a/b/x')
- assert not patt.matches_file('/a/b/c/x')
- assert not patt.matches_file('/a/b/c/')
- assert not patt.matches_file('/a/b/c/.')
|