def test_admin_node_add_page(self):
     """ Test that renders properly /admin/ninecms/node/add/
     Also test fields exclusive to superuser
     Also test initial data
     Check that user field populates only with current user
     Notice that here the user field is selected by form initial data
     :return: None
     """
     response = self.client.get(reverse('admin:ninecms_node_add'))
     self.assertEqual(response.status_code, 403)
     perms = {'add_node': [self.simple_group], 'change_node': [self.simple_group], 'delete_node': []}
     obj = self.node_rev_basic.node.page_type
     set_perms(obj, self.fields, '_pagetype', perms)
     response = self.client.get(reverse('admin:ninecms_node_add'))
     self.assertNotContains(response, '<label for="id_alias">Alias:</label>', html=True)
     self.assertNotContains(response, '<label class="vCheckboxLabel" for="id_redirect">Redirect</label>', html=True)
     self.assertContains(response, ('<select class="form-control form-control-inline" id="id_user" name="user" '
                                    'title=""><option value="">---------</option>'
                                    '<option value="%d" selected="selected">%s</option>'
                                    '</select>' % (self.simple_user.pk, self.simple_user.username)), html=True)
     self.assertContains(response, ('<input checked="checked" class="" id="id_status" name="status" type="checkbox" '
                                    'value="1">'), html=True)
     self.assertContains(response, '<input class="" id="id_promote" name="promote" type="checkbox">', html=True)
     self.assertNotContains(response, ('<input checked="checked"  class="" id="id_promote" name="promote" '
                                       'type="checkbox">'), html=True)
     self.assertContains(response, '<input class="" id="id_sticky" name="sticky" type="checkbox">', html=True)
     self.assertNotContains(response, ('<input checked="checked"  class="" id="id_sticky" name="sticky" '
                                       'type="checkbox">'), html=True)
示例#2
0
 def post(self, request, **kwargs):
     """ HTML post for /cms/types/<id>/edit
     :param request: the request object
     :param kwargs: contains node_id
     :return: response object
     """
     page_type = get_object_or_404(PageType, id=kwargs['type_id'])
     permissions_form = self.permissions_form_class(request.POST)
     groups = Group.objects.all().count()
     if permissions_form.is_valid():
         if request.user.has_perm(
             ('guardian.add_groupobjectpermission',
              'guardian.change_groupobjectpermission',
              'guardian.delete_groupobjectpermission')):
             set_perms(page_type, list(permissions_form.fields.keys()),
                       '_pagetype', permissions_form.cleaned_data)
         messages.success(
             request,
             _("Content type '%s' has been updated.") % page_type.name)
         return redirect('admin:ninecms_pagetype_changelist')
     else:  # pragma: nocover
         messages.warning(
             request,
             _("Content type has not been updated. Please check the form for errors."
               ))
         return render(
             request, 'admin/ninecms/pagetype/perms_form.html', {
                 'permissions_form': permissions_form,
                 'groups': groups,
                 'page_type': page_type,
             })
示例#3
0
 def test_admin_node_add_page(self):
     """ Test that renders properly /admin/ninecms/node/add/
     Also test fields exclusive to superuser
     Also test initial data
     Check that user field populates only with current user
     Notice that here the user field is selected by form initial data
     :return: None
     """
     response = self.client.get(reverse('admin:ninecms_node_add'))
     self.assertEqual(response.status_code, 403)
     perms = {
         'add_node': [self.simple_group],
         'change_node': [self.simple_group],
         'delete_node': []
     }
     obj = self.node_rev_basic.node.page_type
     set_perms(obj, self.fields, '_pagetype', perms)
     response = self.client.get(reverse('admin:ninecms_node_add'))
     self.assertNotContains(response,
                            '<label for="id_alias">Alias:</label>',
                            html=True)
     self.assertNotContains(
         response,
         '<label class="vCheckboxLabel" for="id_redirect">Redirect</label>',
         html=True)
     self.assertContains(response, (
         '<select class="form-control form-control-inline" id="id_user" name="user" '
         'title=""><option value="">---------</option>'
         '<option value="%d" selected="selected">%s</option>'
         '</select>' % (self.simple_user.pk, self.simple_user.username)),
                         html=True)
     self.assertContains(response, (
         '<input checked="checked" class="" id="id_status" name="status" type="checkbox" '
         'value="1">'),
                         html=True)
     self.assertContains(
         response,
         '<input class="" id="id_promote" name="promote" type="checkbox">',
         html=True)
     self.assertNotContains(response, (
         '<input checked="checked"  class="" id="id_promote" name="promote" '
         'type="checkbox">'),
                            html=True)
     self.assertContains(
         response,
         '<input class="" id="id_sticky" name="sticky" type="checkbox">',
         html=True)
     self.assertNotContains(
         response,
         ('<input checked="checked"  class="" id="id_sticky" name="sticky" '
          'type="checkbox">'),
         html=True)
 def test_admin_node_changelist_page(self):
     """ Test view /admin/ninecms/node/ properly
     :return: None
     """
     response = self.client.get(reverse('admin:ninecms_node_changelist'))
     self.assertEqual(response.status_code, 403)
     perms = {'add_node': [self.simple_group], 'change_node': [self.simple_group], 'delete_node': []}
     obj = self.node_rev_basic.node.page_type
     set_perms(obj, self.fields, '_pagetype', perms)
     response = self.client.get(reverse('admin:ninecms_node_changelist'))
     self.assertContains(response, "Basic Page")
     self.assertNotContains(response, "Clear cache")
     self.assertNotContains(response, '<option value="delete_selected">')
示例#5
0
 def test_admin_node_changelist_page(self):
     """ Test view /admin/ninecms/node/ properly
     :return: None
     """
     response = self.client.get(reverse('admin:ninecms_node_changelist'))
     self.assertEqual(response.status_code, 403)
     perms = {
         'add_node': [self.simple_group],
         'change_node': [self.simple_group],
         'delete_node': []
     }
     obj = self.node_rev_basic.node.page_type
     set_perms(obj, self.fields, '_pagetype', perms)
     response = self.client.get(reverse('admin:ninecms_node_changelist'))
     self.assertContains(response, "Basic Page")
     self.assertNotContains(response, "Clear cache")
     self.assertNotContains(response, '<option value="delete_selected">')
示例#6
0
 def test_admin_node_change_page(self):
     """ Test that renders properly /admin/ninecms/node/<node_id>/
     Get the basic page to test image as well
     Also test fields exclusive to superuser
     Check that user field populates only with current user
     Notice that here the field is not selected as there is a different user for this node, not present in queryset
     :return: None
     """
     response = self.client.get(reverse(
         'admin:ninecms_node_change', args=(self.node_rev_basic.node_id, )),
                                follow=True)
     self.assertEqual(response.status_code, 404)  # this returns a 404
     perms = {
         'add_node': [self.simple_group],
         'change_node': [self.simple_group],
         'delete_node': []
     }
     obj = self.node_rev_basic.node.page_type
     set_perms(obj, self.fields, '_pagetype', perms)
     response = self.client.get(
         reverse('admin:ninecms_node_change',
                 args=(self.node_rev_basic.node_id, )))
     self.assertContains(response, (
         '<input class="form-control vTextField" id="id_title" maxlength="255" '
         'name="title" placeholder="Title" required="required" title="" type="text" '
         'value="%s">' % self.node_rev_basic.node.title),
                         html=True)
     self.assertNotContains(response,
                            '<label for="id_alias">Alias:</label>',
                            html=True)
     self.assertNotContains(
         response,
         '<label class="vCheckboxLabel" for="id_redirect">Redirect</label>',
         html=True)
     self.assertContains(response, (
         '<select class="form-control form-control-inline" id="id_user" name="user" '
         'title=""><option value="">---------</option>'
         '<option value="%d">%s</option>'
         '</select>' % (self.simple_user.pk, self.simple_user.username)),
                         html=True)
示例#7
0
 def post(self, request, **kwargs):
     """ HTML post for /cms/types/<id>/edit
     :param request: the request object
     :param kwargs: contains node_id
     :return: response object
     """
     page_type = get_object_or_404(PageType, id=kwargs['type_id'])
     permissions_form = self.permissions_form_class(request.POST)
     groups = Group.objects.all().count()
     if permissions_form.is_valid():
         if request.user.has_perm(('guardian.add_groupobjectpermission',
                                   'guardian.change_groupobjectpermission',
                                   'guardian.delete_groupobjectpermission')):
             set_perms(page_type, list(permissions_form.fields.keys()), '_pagetype', permissions_form.cleaned_data)
         messages.success(request, _("Content type '%s' has been updated.") % page_type.name)
         return redirect('admin:ninecms_pagetype_changelist')
     else:  # pragma: nocover
         messages.warning(request, _("Content type has not been updated. Please check the form for errors."))
         return render(request, 'admin/ninecms/pagetype/perms_form.html', {
             'permissions_form': permissions_form,
             'groups': groups,
             'page_type': page_type,
         })
 def test_admin_node_change_page(self):
     """ Test that renders properly /admin/ninecms/node/<node_id>/
     Get the basic page to test image as well
     Also test fields exclusive to superuser
     Check that user field populates only with current user
     Notice that here the field is not selected as there is a different user for this node, not present in queryset
     :return: None
     """
     response = self.client.get(reverse('admin:ninecms_node_change', args=(self.node_rev_basic.node_id,)),
                                follow=True)
     self.assertEqual(response.status_code, 404)  # this returns a 404
     perms = {'add_node': [self.simple_group], 'change_node': [self.simple_group], 'delete_node': []}
     obj = self.node_rev_basic.node.page_type
     set_perms(obj, self.fields, '_pagetype', perms)
     response = self.client.get(reverse('admin:ninecms_node_change', args=(self.node_rev_basic.node_id,)))
     self.assertContains(response, ('<input class="form-control vTextField" id="id_title" maxlength="255" '
                                    'name="title" placeholder="Title" required="required" title="" type="text" '
                                    'value="%s">' % self.node_rev_basic.node.title), html=True)
     self.assertNotContains(response, '<label for="id_alias">Alias:</label>', html=True)
     self.assertNotContains(response, '<label class="vCheckboxLabel" for="id_redirect">Redirect</label>', html=True)
     self.assertContains(response, ('<select class="form-control form-control-inline" id="id_user" name="user" '
                                    'title=""><option value="">---------</option>'
                                    '<option value="%d">%s</option>'
                                    '</select>' % (self.simple_user.pk, self.simple_user.username)), html=True)
示例#9
0
 def test_utils_perms(self):
     """ Test guardian and utility permissions
     Performed in a single test in order to cover changes from multiple states
     :return: None
     """
     obj = self.node_rev_basic.node.page_type
     # test set empty
     perms = {'change_node': [], 'delete_node': [], 'add_node': []}
     set_perms(obj, self.fields, '_pagetype', perms)
     self.assertFalse(self.simple_user.has_perm('change_node_pagetype',
                                                obj))
     self.assertFalse(self.simple_user.has_perm('delete_node_pagetype',
                                                obj))
     self.assertFalse(self.simple_user.has_perm('add_node_pagetype', obj))
     # test set existing
     perms = {
         'change_node': [],
         'delete_node': [],
         'add_node': [self.simple_group]
     }
     set_perms(obj, self.fields, '_pagetype', perms)
     self.assertFalse(self.simple_user.has_perm('change_node_pagetype',
                                                obj))
     self.assertFalse(self.simple_user.has_perm('delete_node_pagetype',
                                                obj))
     self.assertTrue(self.simple_user.has_perm('add_node_pagetype', obj))
     # test set/unset
     perms = {
         'change_node': [self.simple_group],
         'delete_node': [],
         'add_node': []
     }
     set_perms(obj, self.fields, '_pagetype', perms)
     self.assertTrue(self.simple_user.has_perm('change_node_pagetype', obj))
     self.assertFalse(self.simple_user.has_perm('delete_node_pagetype',
                                                obj))
     self.assertFalse(self.simple_user.has_perm('add_node_pagetype', obj))
 def test_utils_perms(self):
     """ Test guardian and utility permissions
     Performed in a single test in order to cover changes from multiple states
     :return: None
     """
     obj = self.node_rev_basic.node.page_type
     # test set empty
     perms = {'change_node': [], 'delete_node': [], 'add_node': []}
     set_perms(obj, self.fields, '_pagetype', perms)
     self.assertFalse(self.simple_user.has_perm('change_node_pagetype', obj))
     self.assertFalse(self.simple_user.has_perm('delete_node_pagetype', obj))
     self.assertFalse(self.simple_user.has_perm('add_node_pagetype', obj))
     # test set existing
     perms = {'change_node': [], 'delete_node': [], 'add_node': [self.simple_group]}
     set_perms(obj, self.fields, '_pagetype', perms)
     self.assertFalse(self.simple_user.has_perm('change_node_pagetype', obj))
     self.assertFalse(self.simple_user.has_perm('delete_node_pagetype', obj))
     self.assertTrue(self.simple_user.has_perm('add_node_pagetype', obj))
     # test set/unset
     perms = {'change_node': [self.simple_group], 'delete_node': [], 'add_node': []}
     set_perms(obj, self.fields, '_pagetype', perms)
     self.assertTrue(self.simple_user.has_perm('change_node_pagetype', obj))
     self.assertFalse(self.simple_user.has_perm('delete_node_pagetype', obj))
     self.assertFalse(self.simple_user.has_perm('add_node_pagetype', obj))