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