def test_fetch_clean_tags_and_branches(self, checkout_path): upstream_repo = self.project.repo create_git_tag(upstream_repo, 'v01') create_git_tag(upstream_repo, 'v02') create_git_branch(upstream_repo, 'newbranch') local_repo = os.path.join(mkdtemp(), 'local') os.mkdir(local_repo) checkout_path.return_value = local_repo repo = self.project.vcs_repo() repo.clone() delete_git_tag(upstream_repo, 'v02') delete_git_branch(upstream_repo, 'newbranch') # We still have all branches and tags in the local repo self.assertEqual(set(['v01', 'v02']), set(vcs.verbose_name for vcs in repo.tags)) self.assertEqual( set([ 'invalidsubmodule', 'master', 'submodule', 'newbranch', ]), set(vcs.verbose_name for vcs in repo.branches)) repo.update() # We don't have the eliminated branches and tags in the local repo self.assertEqual(set(['v01']), set(vcs.verbose_name for vcs in repo.tags)) self.assertEqual(set(['invalidsubmodule', 'master', 'submodule']), set(vcs.verbose_name for vcs in repo.branches))
def test_fetch_clean_tags_and_branches(self, checkout_path): upstream_repo = self.project.repo create_git_tag(upstream_repo, 'v01') create_git_tag(upstream_repo, 'v02') create_git_branch(upstream_repo, 'newbranch') local_repo = os.path.join(mkdtemp(), 'local') os.mkdir(local_repo) checkout_path.return_value = local_repo repo = self.project.vcs_repo() repo.clone() delete_git_tag(upstream_repo, 'v02') delete_git_branch(upstream_repo, 'newbranch') # We still have all branches and tags in the local repo self.assertEqual( {'v01', 'v02'}, {vcs.verbose_name for vcs in repo.tags}, ) self.assertEqual( { 'invalidsubmodule', 'master', 'submodule', 'newbranch', }, {vcs.verbose_name for vcs in repo.branches}, ) repo.update() # We don't have the eliminated branches and tags in the local repo self.assertEqual( {'v01'}, {vcs.verbose_name for vcs in repo.tags}, ) self.assertEqual( { 'invalidsubmodule', 'master', 'submodule', }, {vcs.verbose_name for vcs in repo.branches}, )