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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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'])
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)
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()
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)
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'])
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'])
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)
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})))
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})))
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)
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)