def test_book_order(self): """ お気に入り追加数順にbook_listが生成されるかテスト """ no_fav_book = factory.BookFactory(fav_count=0) one_fav_book = factory.BookFactory(fav_count=1) response = self.client.get(reverse('book:favorite_lanking')) self.assertEqual(response.status_code, HTTPStatus.OK) self.assertEqual(response.context.get('book_list')[0], self.book) self.assertEqual(response.context.get('book_list')[1], one_fav_book) self.assertNotIn(no_fav_book, response.context.get('book_list')) self.assertTemplateUsed(response, 'book/book_fav_lanking.html')
def test_delete_comment_on_book_detail(self): """ 書籍詳細画面から書籍に紐付いたコメントを削除するテスト """ book = factory.BookFactory() comment = factory.CommentFactory(book=book, user=self.user) comment = get_object_or_404(Comment, uuid=comment.uuid) kwargs = { 'book_pk': book.uuid, 'comment_pk': comment.uuid } response = self.client.post(reverse('book:delete_comment', kwargs=kwargs), follow=True) is_comment_exist = Comment.objects.filter(book=self.book, user=self.user).exists() expected_message = 'コメントを削除しました。' message = get_response_message(response) self.assertFalse(is_comment_exist) self.assertEqual(message, expected_message) self.assertRedirects(response, reverse('book:detail', kwargs={'pk': book.uuid}))
def test_update_comment(self): """ コメント編集ページにPOSTリクエストを送信時のテスト """ book = factory.BookFactory() comment = factory.CommentFactory(book=book, user=self.user) comment = get_object_or_404(Comment, uuid=comment.uuid) expected_comment_title = 'テストタイトル' expected_comment_score = 5.0 expected_comment_content = 'テストコンテンツ' kwargs = { 'book_pk': book.uuid, 'comment_pk': comment.uuid } data = { 'title': expected_comment_title, 'score': expected_comment_score, 'content': expected_comment_content } response = self.client.post(reverse('book:update_comment', kwargs=kwargs), data, follow=True) comment = get_object_or_404(Comment, uuid=comment.uuid) # TODO フラッシュメッセージの内容をテスト self.assertEqual(comment.title, expected_comment_title) self.assertEqual(comment.score, expected_comment_score) self.assertEqual(comment.content, expected_comment_content) self.assertRedirects(response, reverse('book:detail', kwargs={'pk': book.uuid}))
def setUp(self): """ テストセットアップ """ self.book_title = 'テストブック' self.book = factory.BookFactory(title=self.book_title)
def test_context_data(self): """ 対象ユーザの詳細ページのHTMLに 渡されるcontextの内容のテスト """ book = factory.BookFactory() favorite = factory.FavoriteFactory(user=self.user, book=book) comment = factory.CommentFactory(user=self.user, book=book) another = factory.CustomUserFactory(email='*****@*****.**') following_relation = Relation(user=self.user, followed=another) following_relation.save() followed_relation = Relation(user=another, followed=self.user) followed_relation.save() response = self.client.get(reverse('accounts:detail', kwargs={'pk': self.user.uuid}), follow=True) self.assertEqual(response.context.get('customuser'), self.user) self.assertIn(favorite, response.context.get('favorite_list')) self.assertIn(comment, response.context.get('comment_list')) self.assertIn(following_relation, response.context.get('following_list')) self.assertIn(followed_relation, response.context.get('followed_list'))
def setUp(self): """ テストセットアップ """ from book.forms import CommentCreateForm self.form = CommentCreateForm self.book = factory.BookFactory(title='テストタイトル')
def setUp(self): """ テストセットアップ """ self.user = factory.CustomUserFactory() self.client.login(email='*****@*****.**', password='******') self.book = factory.BookFactory(fav_count=5)
def setUp(self): """ テストセットアップ """ self.user = factory.CustomUserFactory() self.client.login(email=self.user.email, password='******') self.book = factory.BookFactory()
def setUp(self): """ テストセットアップ """ self.user = factory.CustomUserFactory() self.client.login(email='*****@*****.**', password='******') self.expected_book_title = 'テストタイトル' self.book = factory.BookFactory(title=self.expected_book_title)
def test_context_data(self): """ context_dataの中身のテスト """ book = factory.BookFactory() factory.FavoriteFactory(user=self.user, book=book) response = self.client.get(reverse('book:list'), follow=True) self.assertIn(book, response.context.get('book_list')) self.assertIn(book, response.context.get('fav_book_list')) self.assertTrue(response.context.get('form'))
def test_book_order(self): """ コメントのscoreの平均点の降順で辞書が生成されるかテスト """ for i in range(5): book_name = 'book' + str(i) book = factory.BookFactory(title=book_name) score = 5 - i factory.CommentFactory(book=book, score=score, user=self.user) response = self.client.get(reverse('book:comment_rating_lanking')) sorted_book_average_dict = response.context['sorted_book_average_dict'] for i in range(5): score = 5 - i averages = list(sorted_book_average_dict.values()) self.assertTrue(averages[i], score)
def test_search_result_no_data(self): """ 検索結果が0件の際にフラッシュメッセージが表示されるか 表示される書籍が0件かテスト """ factory.BookFactory(title='Python') data = { 'search_word': 'Java' } response = self.client.get(reverse('book:list'), data, follow=True) expected_message = '検索結果は0件です。' message = get_response_message(response) self.assertEqual(message, expected_message) self.assertFalse(response.context.get('book_list'))