Example #1
0
 def test_at_repo_root_with_subdir(self):
     self.create_git_file('root.txt')
     self.create_dir('subdir')
     self.create_git_file('subdir', 'entry.txt')
     self.assertEqual(
             set(self.gitlsfiles(self.directory)),
             set([posix(realpath('root.txt')),
                  posix(realpath('subdir/entry.txt'))]))
Example #2
0
 def test_at_repo_subdir(self):
     self.create_git_file('root.txt')
     os.mkdir(join(self.directory, 'subdir'))
     self.create_git_file('subdir', 'entry.txt')
     self.assertEqual(
             set(self.gitlsfiles(join(self.directory, 'subdir'))),
             set([posix(realpath('root.txt')),
                  posix(realpath('subdir/entry.txt'))]))
Example #3
0
 def test_directory_only_contains_another_directory(self):
     self.create_git_file('root.txt')
     self.create_dir('foo', 'bar')
     self.create_git_file('foo', 'bar', 'entry.txt')
     self.assertEqual(
         set(self.gitlsfiles()),
         set([posix(realpath('root.txt')),
              posix(realpath('foo/bar/entry.txt'))]))
Example #4
0
 def test_empty_dirname_in_subdir(self):
     self.create_git_file('root.txt')
     os.mkdir(join(self.directory, 'subdir'))
     self.create_git_file('subdir', 'entry.txt')
     os.chdir(join(self.directory, 'subdir'))
     self.assertEqual(
             set(self.gitlsfiles()),
             set([posix(realpath('../root.txt')),
                  posix(realpath('../subdir/entry.txt'))]))
Example #5
0
 def test_at_repo_root_with_subdir(self):
     self.create_git_file('root.txt')
     self.create_dir('subdir')
     self.create_git_file('subdir', 'entry.txt')
     self.assertEqual(
         set(self.gitlsfiles(self.directory)),
         set([
             posix(realpath('root.txt')),
             posix(realpath('subdir/entry.txt'))
         ]))
Example #6
0
 def test_at_repo_subdir(self):
     self.create_git_file('root.txt')
     os.mkdir(join(self.directory, 'subdir'))
     self.create_git_file('subdir', 'entry.txt')
     self.assertEqual(
         set(self.gitlsfiles(join(self.directory, 'subdir'))),
         set([
             posix(realpath('root.txt')),
             posix(realpath('subdir/entry.txt'))
         ]))
Example #7
0
 def test_empty_dirname_in_subdir(self):
     self.create_git_file('root.txt')
     os.mkdir(join(self.directory, 'subdir'))
     self.create_git_file('subdir', 'entry.txt')
     os.chdir(join(self.directory, 'subdir'))
     self.assertEqual(
         set(self.gitlsfiles()),
         set([
             posix(realpath('../root.txt')),
             posix(realpath('../subdir/entry.txt'))
         ]))
Example #8
0
def listfiles(dirname=''):
    cwd = realpath(dirname or os.curdir)
    prefix_length = len(cwd) + 1

    git_files = gitlsfiles(dirname)
    git_dirs = _gitlsdirs(git_files, prefix_length)

    if sys.version_info >= (2, 6):
        walker = os.walk(cwd, followlinks=True)
    else:
        walker = os.walk(cwd)

    for root, dirs, files in walker:
        dirs[:] = [x for x in dirs if posix(realpath(join(root, x))) in git_dirs]
        for file in files:
            filename = join(root, file)
            if posix(realpath(filename)) in git_files:
                yield filename[prefix_length:]
Example #9
0
def listfiles(dirname=''):
    git_files = gitlsfiles(dirname)
    if not git_files:
        return

    cwd = realpath(dirname or os.curdir)
    prefix_length = len(cwd) + 1

    git_dirs = _gitlsdirs(git_files, prefix_length)

    if sys.version_info >= (2, 6):
        walker = os.walk(cwd, followlinks=True)
    else:
        walker = os.walk(cwd)

    for root, dirs, files in walker:
        dirs[:] = [
            x for x in dirs if posix(realpath(join(root, x))) in git_dirs
        ]
        for file in files:
            filename = join(root, file)
            if posix(realpath(filename)) in git_files:
                yield filename[prefix_length:]
Example #10
0
    def test_nonascii_filename(self):
        filename = 'héhé.html'

        # HFS Plus uses decomposed UTF-8
        if sys.platform == 'darwin':
            filename = decompose(filename)

        self.create_git_file(filename)

        self.assertEqual(
            [fn for fn in os.listdir(self.directory) if fn[0] != '.'],
            [filename])

        self.assertEqual(set(self.gitlsfiles(self.directory)),
                         set([posix(realpath(filename))]))
Example #11
0
def listfiles(dirname=''):
    git_files = gitlsfiles(dirname)

    cwd = realpath(dirname or os.curdir)
    prefix_length = len(cwd) + 1

    if sys.version_info >= (2, 6):
        walker = os.walk(cwd, followlinks=True)
    else:
        walker = os.walk(cwd)

    for root, dirs, files in walker:
        for file in files:
            filename = join(root, file)
            if posix(realpath(filename)) in git_files:
                yield filename[prefix_length:]
Example #12
0
    def test_nonascii_filename(self):
        filename = 'héhé.html'

        # HFS Plus uses decomposed UTF-8
        if sys.platform == 'darwin':
            filename = decompose(filename)

        self.create_git_file(filename)

        self.assertEqual(
                [fn for fn in os.listdir(self.directory) if fn[0] != '.'],
                [filename])

        self.assertEqual(
                set(self.gitlsfiles(self.directory)),
                set([posix(realpath(filename))]))
Example #13
0
def listfiles(dirname=""):
    git_files = gitlsfiles(dirname)

    cwd = realpath(dirname or os.curdir)
    prefix_length = len(cwd) + 1

    if sys.version_info >= (2, 6):
        walker = os.walk(cwd, followlinks=True)
    else:
        walker = os.walk(cwd)

    for root, dirs, files in walker:
        for file in files:
            filename = join(root, file)
            if posix(realpath(filename)) in git_files:
                yield filename[prefix_length:]
Example #14
0
    def test_utf8_filename(self):
        if sys.version_info >= (3, ):
            filename = 'héhé.html'.encode('utf-8')
        else:
            filename = 'héhé.html'

        # HFS Plus uses decomposed UTF-8
        if sys.platform == 'darwin':
            filename = decompose(filename)

        # Windows does not like byte filenames under Python 3
        if sys.platform == 'win32' and sys.version_info >= (3, ):
            filename = filename.decode('utf-8')

        self.create_git_file(filename)

        self.assertEqual(
            [fn for fn in os.listdir(self.directory) if fn[0] != '.'],
            [fsdecode(filename)])

        self.assertEqual(set(self.gitlsfiles(self.directory)),
                         set([posix(realpath(fsdecode(filename)))]))
Example #15
0
    def test_latin1_filename(self):
        if sys.version_info >= (3, ):
            filename = 'héhé.html'.encode('latin-1')
        else:
            filename = 'h\xe9h\xe9.html'

        # HFS Plus quotes unknown bytes
        if sys.platform == 'darwin':
            filename = hfs_quote(filename)

        # Windows does not like byte filenames under Python 3
        if sys.platform == 'win32' and sys.version_info >= (3, ):
            filename = filename.decode('latin-1')

        self.create_git_file(filename)

        self.assertEqual(
            [fn for fn in os.listdir(self.directory) if fn[0] != '.'],
            [fsdecode(filename)])

        self.assertEqual(set(self.gitlsfiles(self.directory)),
                         set([posix(realpath(fsdecode(filename)))]))
Example #16
0
    def test_utf8_filename(self):
        if sys.version_info >= (3,):
            filename = 'héhé.html'.encode('utf-8')
        else:
            filename = 'héhé.html'

        # HFS Plus uses decomposed UTF-8
        if sys.platform == 'darwin':
            filename = decompose(filename)

        # Windows does not like byte filenames under Python 3
        if sys.platform == 'win32' and sys.version_info >= (3,):
            filename = filename.decode('utf-8')

        self.create_git_file(filename)

        self.assertEqual(
                [fn for fn in os.listdir(self.directory) if fn[0] != '.'],
                [fsdecode(filename)])

        self.assertEqual(
                set(self.gitlsfiles(self.directory)),
                set([posix(realpath(fsdecode(filename)))]))
Example #17
0
    def test_latin1_filename(self):
        if sys.version_info >= (3,):
            filename = 'héhé.html'.encode('latin-1')
        else:
            filename = 'h\xe9h\xe9.html'

        # HFS Plus quotes unknown bytes
        if sys.platform == 'darwin':
            filename = hfs_quote(filename)

        # Windows does not like byte filenames under Python 3
        if sys.platform == 'win32' and sys.version_info >= (3,):
            filename = filename.decode('latin-1')

        self.create_git_file(filename)

        self.assertEqual(
                [fn for fn in os.listdir(self.directory) if fn[0] != '.'],
                [fsdecode(filename)])

        self.assertEqual(
                set(self.gitlsfiles(self.directory)),
                set([posix(realpath(fsdecode(filename)))]))
Example #18
0
 def test_at_repo_root(self):
     self.create_git_file('root.txt')
     self.assertEqual(
             set(self.gitlsfiles(self.directory)),
             set([posix(realpath('root.txt'))]))
Example #19
0
 def test_empty_dirname(self):
     self.create_git_file('root.txt')
     self.assertEqual(
             set(self.gitlsfiles()),
             set([posix(realpath('root.txt'))]))
Example #20
0
 def test_at_repo_root(self):
     self.create_git_file('root.txt')
     self.assertEqual(set(self.gitlsfiles(self.directory)),
                      set([posix(realpath('root.txt'))]))
Example #21
0
 def test_directory_only_contains_another_directory(self):
     self.create_dir('foo/bar')
     self.create_git_file('foo/bar/root.txt')
     self.assertEqual(
         set(self.gitlsfiles()),
         set([posix(realpath(join('foo', 'bar', 'root.txt')))]))
Example #22
0
 def test_empty_dirname(self):
     self.create_git_file('root.txt')
     self.assertEqual(set(self.gitlsfiles()),
                      set([posix(realpath('root.txt'))]))