Example #1
0
 def test_forum_page(self):
     response = self.client.get(self.forum.get_absolute_url())
     self.assertEqual(response.context['forum'], self.forum)
     tree = html.fromstring(response.content)
     self.assertTrue(tree.xpath('//a[@href="%s"]' % self.topic.get_absolute_url()))
     self.assertTrue(tree.xpath('//title[contains(text(),"%s")]' % self.forum.name))
     self.assertFalse(tree.xpath('//a[contains(@href,"?page=")]'))
     self.assertFalse(response.context['is_paginated'])
Example #2
0
 def test_base(self):
     url = reverse('pybb:index')
     response = self.client.get(url)
     parser = html.HTMLParser(encoding='utf8')
     tree = html.fromstring(response.content, parser=parser)
     self.assertContains(response, u'foo')
     self.assertContains(response, self.forum.get_absolute_url())
     self.assertTrue(defaults.PYBB_DEFAULT_TITLE in tree.xpath('//title')[0].text_content())
     self.assertEqual(len(response.context['forums']), 1)
Example #3
0
    def test_post_update(self):
        self.login()

        post_update_url = reverse('pybb:post_update', kwargs={'pk': self.post.id})
        response = self.client.get(post_update_url)
        self.assertEqual(response.status_code, 200)
        tree = html.fromstring(response.content)
        values = dict(tree.xpath('//form[@method="post"]')[0].form_values())
        values['body'] = 'test edit'

        with patch.object(Post, 'is_updatable') as is_updatable:
            is_updatable.return_value = True

            response = self.client.post(post_update_url, data=values, follow=True)

        self.assertEqual(response.status_code, 200)

        self.assertEqual(Post.objects.get(pk=self.post.id).body, 'test edit')
        response = self.client.get(self.post.get_absolute_url(), follow=True)
        self.assertContains(response, 'test edit')

        post = Post.objects.get(pk=self.post.pk)

        self.assertFalse(post.updated is None)

        updated = post.updated

        self.user.is_staff = True
        self.user.save()
        response = self.client.get(post_update_url)
        self.assertEqual(response.status_code, 200)

        self.login_as(self.staff)

        response = self.client.post(post_update_url, data=values, follow=True)
        self.assertEqual(response.status_code, 200)

        post = Post.objects.get(pk=self.post.pk)
        self.assertEqual(updated, post.updated)
Example #4
0
 def test_bbcode_and_topic_title(self):
     response = self.client.get(self.topic.get_absolute_url())
     tree = html.fromstring(response.content)
     self.assertTrue(self.topic.name in tree.xpath('//title')[0].text_content())
     self.assertContains(response, self.post.body_html)
     self.assertContains(response, u'bbcode <strong>test</strong>')