예제 #1
0
파일: tasks.py 프로젝트: ravello/testmill
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
예제 #2
0
 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
예제 #3
0
 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