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_check_duplicate_reserved_version_latest(self, api_v2): create_git_branch(self.repo, 'latest') create_git_tag(self.repo, 'latest') version = self.project.versions.get(slug=LATEST) sync_repository = tasks.UpdateDocsTaskStep() sync_repository.version = version sync_repository.project = self.project with self.assertRaises(RepositoryError) as e: sync_repository.sync_repo() self.assertEqual(str(e.exception), RepositoryError.DUPLICATED_RESERVED_VERSIONS) delete_git_branch(self.repo, 'latest') sync_repository.sync_repo() api_v2.project().sync_versions.post.assert_called()
def test_check_duplicate_reserved_version_latest(self, api_v2): create_git_branch(self.repo, 'latest') create_git_tag(self.repo, 'latest') version = self.project.versions.get(slug=LATEST) sync_repository = tasks.UpdateDocsTaskStep() sync_repository.version = version sync_repository.project = self.project with self.assertRaises(RepositoryError) as e: sync_repository.sync_repo() self.assertEqual( str(e.exception), RepositoryError.DUPLICATED_RESERVED_VERSIONS ) delete_git_branch(self.repo, 'latest') sync_repository.sync_repo() api_v2.project().sync_versions.post.assert_called()
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}, )
def test_check_duplicate_reserved_version_latest(self, checkout_path): create_git_branch(self.repo, 'latest') create_git_tag(self.repo, 'latest') # Create dir where to clone the repo local_repo = os.path.join(mkdtemp(), 'local') os.mkdir(local_repo) checkout_path.return_value = local_repo version = self.project.versions.get(slug=LATEST) sync_repository = self.get_update_docs_task(version) with self.assertRaises(RepositoryError) as e: sync_repository.sync_repo(sync_repository.build_env) self.assertEqual( str(e.exception), RepositoryError.DUPLICATED_RESERVED_VERSIONS, ) delete_git_branch(self.repo, 'latest') sync_repository.sync_repo(sync_repository.build_env) self.assertTrue(self.project.versions.filter(slug=LATEST).exists())
def test_check_duplicate_reserved_version_latest(self, checkout_path, api_v2): create_git_branch(self.repo, 'latest') create_git_tag(self.repo, 'latest') # Create dir where to clone the repo local_repo = os.path.join(mkdtemp(), 'local') os.mkdir(local_repo) checkout_path.return_value = local_repo version = self.project.versions.get(slug=LATEST) sync_repository = tasks.UpdateDocsTaskStep() sync_repository.version = version sync_repository.project = self.project with self.assertRaises(RepositoryError) as e: sync_repository.sync_repo() self.assertEqual(str(e.exception), RepositoryError.DUPLICATED_RESERVED_VERSIONS) delete_git_branch(self.repo, 'latest') sync_repository.sync_repo() api_v2.project().sync_versions.post.assert_called()