コード例 #1
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_restore_project_deleted(nonempty_repo, project_type):
    """MetagitRepo.restore_project re-creates deleted projects."""
    project = non_metagit_dir_project(nonempty_repo)
    config = project.get_config()
    rm_rf(project.path)
    nonempty_repo.restore_project(project_type(project.path))
    assert config == project.get_config()
コード例 #2
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_remove_project_nongit(nonempty_repo, project_type):
    """MetagitRepo.remove_project stops tracking projects that aren't Git repos."""
    project = non_metagit_dir_project(nonempty_repo)
    rm_rf(project.path)
    project.path.mkdir()
    nonempty_repo.remove_project(project_type(project.path))
    assert project not in nonempty_repo.projects()
コード例 #3
0
ファイル: formula.py プロジェクト: gutierri/winbrew
 def clean(self):
     """
     Clean old files from previous builds
     """
     os.chdir(self.workdir)
     for fn in os.listdir('.'):
         if fn != self.filename:
             util.rm_rf(fn)
コード例 #4
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_status_deleted(nonempty_repo):
    """MetagitRepo.status discovers deleted projects."""
    project = non_metagit_dir_project(nonempty_repo)
    rm_rf(project.path)
    deleted, modified, untracked = nonempty_repo.status()
    assert project in deleted
    assert len(deleted) == 1
    assert not modified
    assert not untracked
コード例 #5
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_status_no_commits(empty_repo):
    """MetagitRepo.status discovers untracked paths if there are no .metagit commits."""
    rm_rf(empty_repo.metagit_dir)
    git.Repo.init(empty_repo.metagit_dir)
    deleted, modified, untracked = empty_repo.status()
    assert not deleted
    assert not modified
    assert empty_repo.metagit_dir in untracked
    assert len(untracked) == 1
コード例 #6
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_status_deleted_nongit(nonempty_repo):
    """MetagitRepo.status discovers projects that are no longer Git repos."""
    project = non_metagit_dir_project(nonempty_repo)
    rm_rf(project.path)
    project.path.mkdir()
    deleted, modified, untracked = nonempty_repo.status()
    assert project in deleted
    assert len(deleted) == 1
    assert not modified
    assert not untracked
コード例 #7
0
def test_diff_dirty(nonempty_repo):
    """`metagit diff` produces output in a dirty repository."""
    runner = CliRunner()
    with runner.isolated_filesystem():
        repo_path = nonempty_repo.path()
        project = non_metagit_dir_project(nonempty_repo)
        rm_rf(project.path)
        result = runner.invoke(cli.main, ["-C", repo_path, "diff"])
        assert result.exit_code == 0
        assert project.path.name in result.output
コード例 #8
0
def test_status_modified(nonempty_repo):
    """`metagit status` produces output if a project has been modified."""
    runner = CliRunner()
    with runner.isolated_filesystem():
        repo_path = nonempty_repo.path()
        project = non_metagit_dir_project(nonempty_repo)
        rm_rf(project.path / ".git" / "config")
        result = runner.invoke(cli.main, ["-C", repo_path, "status"])
        assert result.exit_code == 0
        assert "Changes" in result.output
        assert "deleted" not in result.output
        assert "modified" in result.output
        assert project.path.name in result.output
        assert "Untracked" not in result.output
コード例 #9
0
def test_restore(nonempty_repo):
    """`metagit restore` overwrites un-added changes to a project."""
    runner = CliRunner()
    with runner.isolated_filesystem():
        project = non_metagit_dir_project(nonempty_repo)
        rm_rf(project.path)
        assert nonempty_repo.diff_project(project)
        result = runner.invoke(
            cli.main,
            ["-C", nonempty_repo.path(), "restore", str(project.path)],
        )
        assert result.exit_code == 0
        assert result.output == ""
        assert not nonempty_repo.diff_project(project)
コード例 #10
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_status_deleted_nongit_config(nonempty_repo, tmp_path):
    """MetagitRepo.status discovers non-Git projects that have a .git/config."""
    project = non_metagit_dir_project(nonempty_repo)
    git_dir = Path(git.Repo(project.path).git_dir)
    tmp_config = tmp_path / "config"
    git_dir_config = git_dir / "config"
    os.link(git_dir_config, tmp_config)
    rm_rf(git_dir)
    git_dir.mkdir()
    tmp_config.rename(git_dir_config)
    deleted, modified, untracked = nonempty_repo.status()
    assert project in deleted
    assert len(deleted) == 1
    assert not modified
    assert not untracked
コード例 #11
0
def main():
    rm_rf(DIST_DIR)
    os.makedirs(DIST_DIR)

    args = parse_args()

    force_build()
    copy_binaries()
    copy_license()

    if TARGET_PLATFORM == 'linux':
        copy_system_libraries()

    create_version()
    create_dist_zip()
コード例 #12
0
def test_restore_relative(nonempty_repo):
    """`metagit restore` restores a project specified by relative path."""
    runner = CliRunner()
    with runner.isolated_filesystem():
        project = non_metagit_dir_project(nonempty_repo)
        rm_rf(project.path)
        assert nonempty_repo.diff_project(project)
        with runner.isolated_filesystem():
            result = runner.invoke(
                cli.main,
                ["-C", nonempty_repo.path(), "restore", os.path.relpath(project.path)],
            )
            assert result.exit_code == 0
            assert result.output == ""
        assert not nonempty_repo.diff_project(project)
コード例 #13
0
ファイル: create-dist.py プロジェクト: Biodun/thrust
def main():
  rm_rf(DIST_DIR)
  os.makedirs(DIST_DIR)

  args = parse_args()

  force_build()
  strip_binaries()
  copy_binaries()
  copy_license()

  if TARGET_PLATFORM == 'linux':
    copy_system_libraries()

  create_version()
  create_dist_zip()
コード例 #14
0
ファイル: formula.py プロジェクト: gutierri/winbrew
 def download(self):
     """
     Download from the source URL via HTTP or git
     """
     print('downloading %s' % self.name)
     if self.ext == '.git':
         path = os.path.join(self.workdir, self.name)
         util.rm_rf(self.workdir)
         util.mkdir_p(self.workdir)
         os.chdir(self.workdir)
         subprocess.check_call(shlex.split('git clone %s %s' % (self.url, self.name)))
         self.unpack_name = self.name
         self.filename = self.name
     else:
         path = os.path.join(self.workdir, self.filename)
         if not os.path.exists(path): 
             util.rm_rf(self.workdir)
             util.mkdir_p(self.workdir)
             os.chdir(self.workdir)
             stream = urllib2.urlopen(self.url)
             fd = open(self.filename, 'wb')
             shutil.copyfileobj(stream, fd)
             fd.close()
コード例 #15
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_projects_no_commits(repo):
    """MetagitRepo.projects yields nothing if the .metagit project has no commits."""
    rm_rf(repo.metagit_dir)
    git.Repo.init(repo.metagit_dir)
    assert not any(repo.projects())
コード例 #16
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_project_set_config_create(project):
    """MetagitRepo.restore_project creates nonexistent projects."""
    config = project.get_config()
    rm_rf(project.path)
    project.set_config(config)
    assert config == project.get_config()
コード例 #17
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_project_set_config_fail(project):
    """MetagitProject.set_config raises an appropriate exception on failure."""
    rm_rf(project.path)
    project.path.mkdir(0o555)
    with pytest.raises(api.InvalidProjectError, match=str(project.path)):
        project.set_config(b"")
コード例 #18
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_projects_corrupt(repo):
    """MetagitRepo.projects raises InvalidRepoError if the metagit_dir is corrupt."""
    rm_rf(repo.metagit_dir / ".git")
    with pytest.raises(api.InvalidRepoError, match=str(repo.metagit_dir)):
        any(repo.projects())
コード例 #19
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_projects_deleted(nonempty_repo):
    """MetagitRepo.projects includes tracked projects that have been deleted."""
    projects = set(nonempty_repo.projects())
    rm_rf(non_metagit_dir_project(nonempty_repo).path)
    assert projects == set(nonempty_repo.projects())
コード例 #20
0
ファイル: test_api.py プロジェクト: dmtucker/metagit
def test_repo_remove_project_nonexistent(nonempty_repo, project_type):
    """MetagitRepo.remove_project stops tracking projects that don't exist anymore."""
    project = non_metagit_dir_project(nonempty_repo)
    rm_rf(project.path)
    nonempty_repo.remove_project(project_type(project.path))
    assert project not in nonempty_repo.projects()