def test_wipe_version_via_slugs_same_version_slug_with_diff_proj( self, mock_broadcast): project_2 = get(Project) version_2 = get(Version, project=project_2, slug=self.version.slug) wipe_version_via_slugs( version_slug=version_2.slug, project_slug=project_2.slug, ) expected_del_dirs = [ os.path.join(version_2.project.doc_path, 'checkouts', version_2.slug), os.path.join(version_2.project.doc_path, 'envs', version_2.slug), os.path.join(version_2.project.doc_path, 'conda', version_2.slug), ] mock_broadcast.assert_has_calls([ call(type='build', task=remove_dirs, args=[(expected_del_dirs[0], )]), call(type='build', task=remove_dirs, args=[(expected_del_dirs[1], )]), call(type='build', task=remove_dirs, args=[(expected_del_dirs[2], )]), ], any_order=False)
def wipe_version(request, project_slug, version_slug): version = get_object_or_404( Version.internal.all(), project__slug=project_slug, slug=version_slug, ) # We need to check by ``for_admin_user`` here to allow members of the # ``Admin`` team (which doesn't own the project) under the corporate site. if version.project not in Project.objects.for_admin_user( user=request.user): raise Http404('You must own this project to wipe it.') if request.method == 'POST': wipe_version_via_slugs( version_slug=version_slug, project_slug=project_slug, ) return redirect('project_version_list', project_slug) return render( request, 'wipe_version.html', { 'version': version, 'project': version.project }, )
def wipe_selected_versions(self, request, queryset): """Wipes the selected versions.""" for version in queryset: wipe_version_via_slugs(version_slug=version.slug, project_slug=version.project.slug) self.message_user(request, 'Wiped {}.'.format(version.slug), level=messages.SUCCESS)
def test_wipe_version_via_slug_wrong_param(self, mock_broadcast): self.assertFalse(Version.objects.filter(slug='wrong-slug').exists()) with self.assertRaises(Http404): wipe_version_via_slugs( version_slug='wrong-slug', project_slug=self.version.project.slug ) mock_broadcast.assert_not_called()
def wipe_selected_versions(self, request, queryset): """Wipes the selected versions.""" for version in queryset: wipe_version_via_slugs( version_slug=version.slug, project_slug=version.project.slug ) self.message_user( request, 'Wiped {}.'.format(version.slug), level=messages.SUCCESS )
def test_wipe_version_via_slug(self, mock_broadcast): wipe_version_via_slugs( version_slug=self.version.slug, project_slug=self.version.project.slug ) expected_del_dirs = [ os.path.join(self.version.project.doc_path, 'checkouts', self.version.slug), os.path.join(self.version.project.doc_path, 'envs', self.version.slug), os.path.join(self.version.project.doc_path, 'conda', self.version.slug), ] mock_broadcast.assert_has_calls( [ call(type='build', task=remove_dirs, args=[(expected_del_dirs[0],)]), call(type='build', task=remove_dirs, args=[(expected_del_dirs[1],)]), call(type='build', task=remove_dirs, args=[(expected_del_dirs[2],)]), ], any_order=False )
def wipe_version(request, project_slug, version_slug): version = get_object_or_404( Version, project__slug=project_slug, slug=version_slug, ) # We need to check by ``for_admin_user`` here to allow members of the # ``Admin`` team (which doesn't own the project) under the corporate site. if version.project not in Project.objects.for_admin_user(user=request.user): raise Http404('You must own this project to wipe it.') if request.method == 'POST': wipe_version_via_slugs( version_slug=version_slug, project_slug=project_slug ) return redirect('project_version_list', project_slug) return render( request, 'wipe_version.html', {'version': version, 'project': version.project}, )
def test_wipe_version_via_slugs_same_version_slug_with_diff_proj(self, mock_broadcast): project_2 = get(Project) version_2 = get(Version, project=project_2, slug=self.version.slug) wipe_version_via_slugs( version_slug=version_2.slug, project_slug=project_2.slug, ) expected_del_dirs = [ os.path.join(version_2.project.doc_path, 'checkouts', version_2.slug), os.path.join(version_2.project.doc_path, 'envs', version_2.slug), os.path.join(version_2.project.doc_path, 'conda', version_2.slug), ] mock_broadcast.assert_has_calls( [ call(type='build', task=remove_dirs, args=[(expected_del_dirs[0],)]), call(type='build', task=remove_dirs, args=[(expected_del_dirs[1],)]), call(type='build', task=remove_dirs, args=[(expected_del_dirs[2],)]), ], any_order=False )