def create_archive(): ravello_dir = util.get_ravello_dir() try: st = os.stat(ravello_dir) except OSError: st = None if st and not stat.S_ISDIR(st.st_mode): error.raise_error("Path `{0}` exists but is not a directory.", ravello_dir) elif st is None: os.mkdir(ravello_dir) distfile = os.path.join(ravello_dir, 'dist.tar.gz') try: st = os.stat(distfile) except OSError: st = None if st and st.st_mtime >= env.start_time: return distfile archive = tarfile.TarFile.open(distfile, 'w:gz') repotype = env.manifest['repository']['type'] files = versioncontrol.walk_repository('.', repotype) for fname in files: if fname.startswith(ravello_dir): continue archive.add(fname, recursive=False) archive.close() return distfile
def test_walk_git_repository(self): self.create_git_repo() gen = versioncontrol.walk_repository('.', repotype='git') elems = list(gen) assert len(elems) == 8 join = os.path.join assert '.gitignore' in elems assert 'dir1' in elems assert join('dir1', 'sub1') in elems assert join('dir1', 'sub1', 'bar') in elems assert 'dir2' in elems assert join('dir2', '.gitignore') in elems assert join('dir2', 'sub2') in elems assert join('dir2', 'sub2', 'qux') in elems
def test_walk_repository(self): self.create_repo() gen = versioncontrol.walk_repository('.', repotype=None) elems = list(gen) assert len(elems) == 12 join = os.path.join assert 'dir1' in elems assert join('dir1', 'sub1') in elems assert join('dir1', 'sub1', 'foo') in elems assert join('dir1', 'sub1', 'bar') in elems assert join('dir1', 'sub2') in elems assert join('dir1', 'sub2', 'baz') in elems assert 'dir2' in elems assert join('dir2', 'sub2') in elems assert join('dir2', 'sub2', 'foo') in elems assert join('dir2', 'sub2', 'qux') in elems assert join('dir2', 'sub3') in elems assert join('dir2', 'sub3', 'quux') in elems