def test_get(self, rf, mocker): # pylint: disable=no-self-use disable=invalid-name """ test create """ url = reverse('profilepermission-list') profile_test = Profile() profile_test.name = "profile_test_viewset" profile_test.key = "test" profile_test.description = "test" profile_test.save() permission_test = Permission() permission_test.name = "permission_test_viewset" permission_test.key = "test" permission_test.description = "test" permission_test.save() data = {"profile": profile_test.id, "permission": permission_test.id} request = rf.post(url, content_type='application/json', data=json.dumps(data)) mocker.patch.object(ProfilePermission, 'save') # Renderizamos la vista con nuestro request. response = ProfilePermissionViewSet.as_view({'post': 'create' })(request).render() print(response.content) profile = Profile.objects.get( id=json.loads(response.content).get('profile')) assert response.status_code == 201 assert str(profile) == 'profile_test_viewset' # Verificamos si efectivamente se llamo el metodo save assert ProfilePermission.save.called
def test_get(self, rf, mocker): # pylint: disable=no-self-use disable=invalid-name """ test create """ url = reverse('profilepermission-list') permission_test = Permission() permission_test.name = "user_permission_viewset" permission_test.key = "test" permission_test.description = "test" permission_test.save() user_test = ApiUser() user_test.username = "******" user_test.password = "******" user_test.email = "*****@*****.**" user_test.save() data = {"permission": permission_test.id, "user": user_test.id} request = rf.post(url, content_type='application/json', data=json.dumps(data)) mocker.patch.object(UserPermission, 'save') # Renderizamos la vista con nuestro request. response = UserPermissionViewSet.as_view({'post': 'create'})(request).render() permission = Permission.objects.get( id=json.loads(response.content).get('permission')) assert response.status_code == 201 assert str(permission) == 'user_permission_viewset' # Verificamos si efectivamente se llamo el metodo save assert UserPermission.save.called
def save(self, slug, request_user): permissions = Permission(permission_name='%s_perms' % slug, visibility=self.cleaned_data['visibility'], protection=self.cleaned_data['protection']) permissions.save(commit=False) permissions.can_write.add(request_user) permissions.can_read.add(request_user) if self.cleaned_data['protection'] == "2": for user in self.cleaned_data['can_write']: permissions.can_write.add(user) if self.cleaned_data['visibility'] == "2": for user in self.cleaned_data['can_read']: permissions.can_read.add(user) permissions.save(commit=True) return permissions
def test_update( self, user_permission_factory, ): # pylint: disable=no-self-use """ test updated user_permission """ permission_test = Permission() permission_test.name = "user_permission_test2" permission_test.key = "test" permission_test.description = "test" permission_test.save() user_permission_created = user_permission_factory() user_permission = UserPermission.objects.get( id=user_permission_created.id) user_permission.permission = permission_test user_permission.save() assert user_permission.permission.name == "user_permission_test2", 'name should be user_permission_test2'
def create(self, validated_data): instance = self.Meta.model(**validated_data) instance.save() TYPE_CHOICE_LIST = [{ 'id': 1, 'type': 'GET' }, { 'id': 2, 'type': 'LIST' }, { 'id': 3, 'type': 'POST' }, { 'id': 4, 'type': 'PUT' }, { 'id': 5, 'type': 'PATCH' }, { 'id': 6, 'type': 'DELETE' }] for item in TYPE_CHOICE_LIST: item_id = item['id'] item_type = item['type'] permission = Permission() permission.name = "{} | {} | {}".format(item_type, instance.origin.name, instance.api_path) permission.key = "{}{}{}".format(item_type.lower(), instance.origin.host, instance.api_path) permission.description = "Autogenerate permission type {} for {} from {}:{}".format( item_type, instance.api_path, instance.origin.name, instance.origin.port) permission.type = item_id permission.api = instance permission.save() return instance
def create_permission(permission: ValidPermissions, *args) -> Permission: permission_obj = Permission() permission_obj.set_permission(permission, *args) permission_obj.save() return permission_obj
def create(request, template_name=None, next=None, action=None): """this method is used to create a page about something""" request_user = request.user if request.method == 'POST': f = ArticleForm(request.POST) if f.is_valid(): title = f.cleaned_data['title'] slug = slugify(title) category = f.cleaned_data['category'] protection = f.cleaned_data['protection'] visibility = f.cleaned_data['visibility'] can_write = f.cleaned_data['can_write'] can_read = f.cleaned_data['can_read'] if Article.objects.filter(slug=slug).count() > 0: slug = slug + str(Article.objects.filter(slug__contains=slug).count()) article = Article(author=request.user, slug=slug, title=title,category=category) #Check every thing related to permissions cal_protection and cal_visibility if article.permissions is None: permissions = Permission(permission_name='%s_perms' % slug, visibility=visibility, protection=protection) permissions.save() article.permissions = permissions article.permissions.can_write.add(request.user) article.permissions.can_read.add(request.user) #@todo change "2" to CUSTOM if protection == "2": for user in can_write: article.permissions.can_write.add(user) if visibility == "2": for user in can_read: article.permissions.can_read.add(user) article.parent = Article.get_root() article.save() if TaggableManager: #tagging the article tags = f.cleaned_data['tags'] if tags: article.tags.set(*tags) #adding the article description only if the user has checked the add_description if not f.cleaned_data['contents'] == '': status = f.cleaned_data['status'] contents = f.cleaned_data['contents'] new_revision = Version(user=request.user, article=article, status=status, contents=contents) new_revision.save() #set the notification object #ToNotify(user=request_user, Article=article).save() if not request.is_ajax(): if next == 'wall_home': return HttpResponseRedirect(reverse(next)) return HttpResponseRedirect(reverse(next, args=(article.get_url(),))) response = {'success':True} else: response = errors_as_json(f) if request.is_ajax(): json = simplejson.dumps(response, ensure_ascii=False) return HttpResponse(json, mimetype="application/json") else: f = ArticleForm() c = RequestContext(request, {'wiki_form': f, 'action':reverse(action), 'wiki_edit_protection':False, 'wiki_write': False, 'wiki_read': False, }) return render_to_response(template_name, c)