예제 #1
0
    def test_edit_object_anonymous(self):
        obj = mommy.make(TestClass)
        url = obj.get_edit_url()

        response = self.client.get(url)
        if coop_settings.is_perm_middleware_installed():
            self.assertEqual(302, response.status_code)
            auth_url = get_login_url()
            self.assertRedirects(response, auth_url + '?next=' + url)
        else:
            self.assertEqual(403, response.status_code)

        field1, field2 = obj.field1, obj.field2
        data = {
            'field1': "ABC",
            'field2': "DEF",
            'bool_field': True,
            'int_field': 2,
            'float_field': 3.14
        }
        response = self.client.post(url, data=data)

        if coop_settings.is_perm_middleware_installed():
            self.assertEqual(302, response.status_code)
            auth_url = get_login_url()
            self.assertRedirects(response, auth_url + '?next=' + url)
        else:
            self.assertEqual(403, response.status_code)

        obj = TestClass.objects.get(id=obj.id)
        self.assertEqual(obj.field1, field1)
        self.assertEqual(obj.field2, field2)
예제 #2
0
파일: tests.py 프로젝트: ljean/coop_cms
 def test_edit_object_anonymous(self):
     obj = mommy.make(TestClass)
     url = obj.get_edit_url()
     
     response = self.client.get(url)
     if coop_settings.is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url + '?next=' + url)
     else:
         self.assertEqual(403, response.status_code)
     
     field1, field2 = obj.field1, obj.field2
     data = {'field1': "ABC", 'field2': "DEF", 'bool_field': True, 'int_field': 2, 'float_field': 3.14}
     response = self.client.post(url, data=data)
     
     if coop_settings.is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url + '?next=' + url)
     else:
         self.assertEqual(403, response.status_code)
     
     obj = TestClass.objects.get(id=obj.id)
     self.assertEqual(obj.field1, field1)
     self.assertEqual(obj.field2, field2)
예제 #3
0
파일: tests.py 프로젝트: ljean/coop_cms
 def test_edit_formset_anonymous(self):
     obj = mommy.make(TestClass)
     
     url = reverse('coop_cms_testapp_formset_edit')
     
     other_field = obj.other_field
     data = {
         'form-0-id': obj.id,
         'form-0-field1': "AZERTYUIOP",
         'form-0-field2': "<p>QWERTY/nUIOP</p>",
         'form-0-bool_field': True,
         'form-0-int_field': 2,
         'form-0-float_field': 3.14,
         'form-TOTAL_FORMS': 1,
         'form-INITIAL_FORMS': 1,
         'form-MAX_NUM_FORMS': 1,
     }
     
     response = self.client.post(url, data=data)
     
     if coop_settings.is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url+'?next='+url)
     else:
         self.assertEqual(403, response.status_code)
     
     obj = TestClass.objects.get(id=obj.id)
     
     self.assertNotEqual(data['form-0-field1'], obj.field1)
     self.assertNotEqual(data['form-0-field2'], obj.field2)
예제 #4
0
    def test_edit_formset_anonymous(self):
        obj = mommy.make(TestClass)

        url = reverse('coop_cms_testapp_formset_edit')

        other_field = obj.other_field
        data = {
            'form-0-id': obj.id,
            'form-0-field1': "AZERTYUIOP",
            'form-0-field2': "<p>QWERTY/nUIOP</p>",
            'form-0-bool_field': True,
            'form-0-int_field': 2,
            'form-0-float_field': 3.14,
            'form-TOTAL_FORMS': 1,
            'form-INITIAL_FORMS': 1,
            'form-MAX_NUM_FORMS': 1,
        }

        response = self.client.post(url, data=data)

        if coop_settings.is_perm_middleware_installed():
            self.assertEqual(302, response.status_code)
            auth_url = get_login_url()
            self.assertRedirects(response, auth_url + '?next=' + url)
        else:
            self.assertEqual(403, response.status_code)

        obj = TestClass.objects.get(id=obj.id)

        self.assertNotEqual(data['form-0-field1'], obj.field1)
        self.assertNotEqual(data['form-0-field2'], obj.field2)
예제 #5
0
 def test_view_article_settings_anonymous(self):
     article_class = coop_settings.get_article_class()
     article = mommy.make(article_class, slug="test")
     url = reverse('coop_cms_article_settings', args=[article.id])
     response = self.client.get(url)
     self.assertEqual(302, response.status_code)
     auth_url = get_login_url()
     self.assertRedirects(response, auth_url + '?next=' + url)
예제 #6
0
 def test_view_draft_anonymous(self):
     article = get_article_class().objects.create(title="test", publication=BaseArticle.DRAFT)
     self.assertEqual(article.is_draft(), True)
     url = article.get_absolute_url()
     response = self.client.get(url)
     self.assertEqual(302, response.status_code)
     auth_url = get_login_url()
     self.assertRedirects(response, auth_url+'?next='+url)
예제 #7
0
파일: tests.py 프로젝트: ljean/coop_cms
 def test_view_article_settings_anonymous(self):
     article_class = coop_settings.get_article_class()
     article = mommy.make(article_class, slug="test")
     url = reverse('coop_cms_article_settings', args=[article.id])
     response = self.client.get(url)
     self.assertEqual(302, response.status_code)
     auth_url = get_login_url()
     self.assertRedirects(response, auth_url+'?next='+url)
예제 #8
0
 def test_edit_anonymous(self):
     article = get_article_class().objects.create(title="test", publication=BaseArticle.DRAFT)
     self.assertEqual(article.is_draft(), True)
     url = article.get_edit_url()
     response = self.client.get(url)
     self.assertEqual(302, response.status_code)
     auth_url = get_login_url()
     self.assertTrue(response["Location"].find(auth_url + '?next=' + url) >= 0)
예제 #9
0
    def process_exception(self, request, exception):
        """manage exception"""

        if isinstance(exception, PermissionDenied) and (not is_authenticated(request.user)):
            try:
                login_url = get_login_url()
            except NoReverseMatch:
                login_url = None
            return redirect_to_login(request.path, login_url)
예제 #10
0
    def process_exception(self, request, exception):
        """manage exception"""

        if isinstance(exception, PermissionDenied) and (not request.user.is_authenticated()):
            try:
                login_url = get_login_url()
            except NoReverseMatch:
                login_url = None
            return redirect_to_login(request.path, login_url)
예제 #11
0
 def test_view_draft_anonymous(self):
     article = get_article_class().objects.create(
         title="test", publication=BaseArticle.DRAFT)
     self.assertEqual(article.is_draft(), True)
     url = article.get_absolute_url()
     response = self.client.get(url)
     self.assertEqual(302, response.status_code)
     auth_url = get_login_url()
     self.assertRedirects(response, auth_url + '?next=' + url)
예제 #12
0
파일: test_link.py 프로젝트: ljean/coop_cms
    def test_add_link_anonymous(self):
        data = {'title': "test", 'url': "http://www.google.fr", 'sites': [settings.SITE_ID]}

        url = reverse('coop_cms_new_link')
        response = self.client.post(url, data=data, follow=True)

        auth_url = get_login_url()
        self.assertRedirects(response, auth_url + '?{0}'.format(urlencode({'next': url})))

        self.assertEqual(Link.objects.count(), 0)
예제 #13
0
 def test_view_object_anomymous(self):
     obj = mommy.make(TestClass)
     url = obj.get_absolute_url()
     response = self.client.get(url)
     if coop_settings.is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url + '?next=' + url)
     else:
         self.assertEqual(403, response.status_code)
예제 #14
0
 def test_edit_anonymous(self):
     article = get_article_class().objects.create(
         title="test", publication=BaseArticle.DRAFT)
     self.assertEqual(article.is_draft(), True)
     url = article.get_edit_url()
     response = self.client.get(url)
     self.assertEqual(302, response.status_code)
     auth_url = get_login_url()
     self.assertTrue(
         response["Location"].find(auth_url + '?next=' + url) >= 0)
예제 #15
0
파일: tests.py 프로젝트: ljean/coop_cms
 def test_view_object_anomymous(self):
     obj = mommy.make(TestClass)
     url = obj.get_absolute_url()
     response = self.client.get(url)
     if coop_settings.is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url + '?next=' + url)
     else:
         self.assertEqual(403, response.status_code)
예제 #16
0
 def test_publication_flag_draft(self):
     article = get_article_class().objects.create(title="test", publication=BaseArticle.DRAFT)
     self.assertEqual(article.is_draft(), True)
     url = article.get_absolute_url()
     response = self.client.get(url)
     if is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url+'?next='+url)
     else:
         self.assertEqual(403, response.status_code)
예제 #17
0
 def test_publication_flag_draft(self):
     article = get_article_class().objects.create(
         title="test", publication=BaseArticle.DRAFT)
     self.assertEqual(article.is_draft(), True)
     url = article.get_absolute_url()
     response = self.client.get(url)
     if is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url + '?next=' + url)
     else:
         self.assertEqual(403, response.status_code)
예제 #18
0
 def test_login_required_not_authenticated(self):
     """raise permission denied if permission required not authenticated"""
     self.client.logout()
     article = get_article_class().objects.create(
         title="test", publication=BaseArticle.PUBLISHED, login_required=True
     )
     url = article.get_absolute_url()
     response = self.client.get(url)
     if is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url+'?next='+url)
     else:
         self.assertEqual(403, response.status_code)
예제 #19
0
    def test_add_link_anonymous(self):
        data = {
            'title': "test",
            'url': "http://www.google.fr",
            'sites': [settings.SITE_ID]
        }

        url = reverse('coop_cms_new_link')
        response = self.client.post(url, data=data, follow=True)

        auth_url = get_login_url()
        self.assertRedirects(
            response, auth_url + '?{0}'.format(urlencode({'next': url})))

        self.assertEqual(Link.objects.count(), 0)
예제 #20
0
 def test_view_draft_article(self):
     self.client.logout()
     article = get_article_class().objects.create(title="test", publication=BaseArticle.DRAFT)
     url = article.get_absolute_url()
     response = self.client.get(url)
     if is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url+'?next='+url)
     else:
         self.assertEqual(403, response.status_code)
     
     self._log_as_editor()
     response = self.client.get(article.get_absolute_url())
     self.assertEqual(200, response.status_code)
예제 #21
0
 def test_login_required_not_authenticated(self):
     """raise permission denied if permission required not authenticated"""
     self.client.logout()
     article = get_article_class().objects.create(
         title="test",
         publication=BaseArticle.PUBLISHED,
         login_required=True)
     url = article.get_absolute_url()
     response = self.client.get(url)
     if is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url + '?next=' + url)
     else:
         self.assertEqual(403, response.status_code)
예제 #22
0
    def test_view_draft_article(self):
        self.client.logout()
        article = get_article_class().objects.create(
            title="test", publication=BaseArticle.DRAFT)
        url = article.get_absolute_url()
        response = self.client.get(url)
        if is_perm_middleware_installed():
            self.assertEqual(302, response.status_code)
            auth_url = get_login_url()
            self.assertRedirects(response, auth_url + '?next=' + url)
        else:
            self.assertEqual(403, response.status_code)

        self._log_as_editor()
        response = self.client.get(article.get_absolute_url())
        self.assertEqual(200, response.status_code)
예제 #23
0
 def test_article_edition_permission(self):
     initial_data = {'title': "test", 'content': "this is my article content"}
     article = get_article_class().objects.create(publication=BaseArticle.PUBLISHED, **initial_data)
     url = article.get_edit_url()
     data = {"title": 'salut', "content": 'oups'}
     response = self.client.post(url, data=data)
     if is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url+'?next='+url)
     else:
         self.assertEqual(403, response.status_code)
     
     article = get_article_class().objects.get(id=article.id)
     self.assertEquals(article.title, initial_data['title'])
     self.assertEquals(article.content, initial_data['content'])
예제 #24
0
    def test_new_article_anoymous(self):
        article_class = coop_settings.get_article_class()
        url = reverse('coop_cms_new_article')
        data = {
            'title': 'test',
            'template': settings.COOP_CMS_ARTICLE_TEMPLATES[0][0],
            'publication': BaseArticle.PUBLISHED,
            'in_newsletter': False,
            'navigation_parent': None,
            'sites': [settings.SITE_ID],
        }
        response = self.client.post(url, data=data)
        self.assertEqual(response.status_code, 302)
        login_url = get_login_url()
        self.assertTrue(response['Location'].find(login_url) >= 0)

        self.assertEqual(article_class.objects.count(), 0)
예제 #25
0
파일: tests.py 프로젝트: ljean/coop_cms
    def setUp(self):
        self._settings_backup = {}
        for s in self._settings_fields_to_backup():
            v = getattr(settings, s, None)
            if v != None:
                self._settings_backup[s] = v
        
        self.LOGIN_URL = settings.LOGIN_URL
        settings.LOGIN_URL = get_login_url()
        settings.COOP_CMS_NEW_ARTICLE_FORM = 'coop_cms.apps.test_app.forms.MyNewArticleForm'
        settings.COOP_CMS_ARTICLE_SETTINGS_FORM = 'coop_cms.apps.test_app.forms.MyArticleSettingsForm'
        settings.COOP_CMS_ARTICLE_TEMPLATES = (
            ('test/article.html', 'Article'),
            ('test/article_with_blocks.html', 'Article with blocks'),
        )

        super(ArticleFormTest, self).setUp()
예제 #26
0
    def setUp(self):
        self._settings_backup = {}
        for s in self._settings_fields_to_backup():
            v = getattr(settings, s, None)
            if v != None:
                self._settings_backup[s] = v

        self.LOGIN_URL = settings.LOGIN_URL
        settings.LOGIN_URL = get_login_url()
        settings.COOP_CMS_NEW_ARTICLE_FORM = 'coop_cms.apps.test_app.forms.MyNewArticleForm'
        settings.COOP_CMS_ARTICLE_SETTINGS_FORM = 'coop_cms.apps.test_app.forms.MyArticleSettingsForm'
        settings.COOP_CMS_ARTICLE_TEMPLATES = (
            ('test/article.html', 'Article'),
            ('test/article_with_blocks.html', 'Article with blocks'),
        )

        super(ArticleFormTest, self).setUp()
예제 #27
0
파일: tests.py 프로젝트: ljean/coop_cms
 def test_new_article_anoymous(self):
     article_class = coop_settings.get_article_class()
     url = reverse('coop_cms_new_article')
     data = {
         'title': 'test',
         'template': settings.COOP_CMS_ARTICLE_TEMPLATES[0][0],
         'publication': BaseArticle.PUBLISHED,
         'in_newsletter': False,
         'navigation_parent': None,
         'sites': [settings.SITE_ID],
     }
     response = self.client.post(url, data=data)
     self.assertEqual(response.status_code, 302)
     login_url = get_login_url()
     self.assertTrue(response['Location'].find(login_url) >= 0)
     
     self.assertEqual(article_class.objects.count(), 0)
예제 #28
0
 def test_edit_permission(self):
     initial_data = {'title': "ceci est un test", 'content': "this is my article content"}
     article = get_article_class().objects.create(publication=BaseArticle.PUBLISHED, **initial_data)
     response = self.client.get(article.get_absolute_url(), follow=True)
     self.assertEqual(200, response.status_code)
     
     url = article.get_edit_url()
     response = self.client.get(url, follow=False)
     if is_perm_middleware_installed():
         self.assertEqual(302, response.status_code)
         auth_url = get_login_url()
         self.assertRedirects(response, auth_url+'?next='+url)
     else:
         self.assertEqual(403, response.status_code)
 
     self._log_as_editor()
     response = self.client.get(article.get_edit_url(), follow=False)
     self.assertEqual(200, response.status_code)
예제 #29
0
    def test_article_edition_permission(self):
        initial_data = {
            'title': "test",
            'content': "this is my article content"
        }
        article = get_article_class().objects.create(
            publication=BaseArticle.PUBLISHED, **initial_data)
        url = article.get_edit_url()
        data = {"title": 'salut', "content": 'oups'}
        response = self.client.post(url, data=data)
        if is_perm_middleware_installed():
            self.assertEqual(302, response.status_code)
            auth_url = get_login_url()
            self.assertRedirects(response, auth_url + '?next=' + url)
        else:
            self.assertEqual(403, response.status_code)

        article = get_article_class().objects.get(id=article.id)
        self.assertEquals(article.title, initial_data['title'])
        self.assertEquals(article.content, initial_data['content'])
예제 #30
0
파일: tests.py 프로젝트: ljean/coop_cms
 def test_article_settings_anonymous(self):
     article_class = coop_settings.get_article_class()
     article = mommy.make(article_class, slug="test")
     url = reverse('coop_cms_article_settings', args=[article.id])
     
     data = {
         'template': settings.COOP_CMS_ARTICLE_TEMPLATES[0][0],
         'publication_date': datetime.now(),
         'publication': BaseArticle.PUBLISHED,
         'in_newsletter': False,
         'summary': 'Summary',
         'navigation_parent': None,
         'sites': [settings.SITE_ID],
     }
     response = self.client.post(url, data=data)
     self.assertEqual(response.status_code, 302)
     login_url = get_login_url()
     self.assertTrue(response['Location'].find(login_url) >= 0)
     
     self.assertEqual(article_class.objects.count(), 1)
     article = article_class.objects.all()[0]
     self.assertNotEqual(article.summary, data['summary'])
예제 #31
0
    def test_edit_permission(self):
        initial_data = {
            'title': "ceci est un test",
            'content': "this is my article content"
        }
        article = get_article_class().objects.create(
            publication=BaseArticle.PUBLISHED, **initial_data)
        response = self.client.get(article.get_absolute_url(), follow=True)
        self.assertEqual(200, response.status_code)

        url = article.get_edit_url()
        response = self.client.get(url, follow=False)
        if is_perm_middleware_installed():
            self.assertEqual(302, response.status_code)
            auth_url = get_login_url()
            self.assertRedirects(response, auth_url + '?next=' + url)
        else:
            self.assertEqual(403, response.status_code)

        self._log_as_editor()
        response = self.client.get(article.get_edit_url(), follow=False)
        self.assertEqual(200, response.status_code)
예제 #32
0
    def test_article_settings_anonymous(self):
        article_class = coop_settings.get_article_class()
        article = mommy.make(article_class, slug="test")
        url = reverse('coop_cms_article_settings', args=[article.id])

        data = {
            'template': settings.COOP_CMS_ARTICLE_TEMPLATES[0][0],
            'publication_date': datetime.now(),
            'publication': BaseArticle.PUBLISHED,
            'in_newsletter': False,
            'summary': 'Summary',
            'navigation_parent': None,
            'sites': [settings.SITE_ID],
        }
        response = self.client.post(url, data=data)
        self.assertEqual(response.status_code, 302)
        login_url = get_login_url()
        self.assertTrue(response['Location'].find(login_url) >= 0)

        self.assertEqual(article_class.objects.count(), 1)
        article = article_class.objects.all()[0]
        self.assertNotEqual(article.summary, data['summary'])
예제 #33
0
파일: test_link.py 프로젝트: ljean/coop_cms
 def test_view_new_link_anonymous(self):
     url = reverse('coop_cms_new_link')
     response = self.client.get(url, follow=True)
     auth_url = get_login_url()
     self.assertRedirects(response, auth_url + '?{0}'.format(urlencode({'next': url})))
예제 #34
0
 def test_view_new_link_anonymous(self):
     url = reverse('coop_cms_new_link')
     response = self.client.get(url, follow=True)
     auth_url = get_login_url()
     self.assertRedirects(
         response, auth_url + '?{0}'.format(urlencode({'next': url})))
예제 #35
0
 def test_view_new_article_anonymous(self):
     url = reverse('coop_cms_new_article')
     response = self.client.get(url)
     self.assertEqual(302, response.status_code)
     auth_url = get_login_url()
     self.assertRedirects(response, auth_url + '?next=' + url)
예제 #36
0
파일: tests.py 프로젝트: ljean/coop_cms
 def test_view_new_article_anonymous(self):
     url = reverse('coop_cms_new_article')
     response = self.client.get(url)
     self.assertEqual(302, response.status_code)
     auth_url = get_login_url()
     self.assertRedirects(response, auth_url+'?next='+url)