示例#1
0
    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')
示例#2
0
    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}))
示例#3
0
    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}))
示例#4
0
    def setUp(self):
        """
        テストセットアップ
        """

        self.book_title = 'テストブック'
        self.book = factory.BookFactory(title=self.book_title)
示例#5
0
    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'))
示例#6
0
    def setUp(self):
        """
        テストセットアップ
        """
        from book.forms import CommentCreateForm
        self.form = CommentCreateForm

        self.book = factory.BookFactory(title='テストタイトル')
示例#7
0
    def setUp(self):
        """
        テストセットアップ
        """

        self.user = factory.CustomUserFactory()
        self.client.login(email='*****@*****.**', password='******')
        self.book = factory.BookFactory(fav_count=5)
示例#8
0
    def setUp(self):
        """
        テストセットアップ
        """

        self.user = factory.CustomUserFactory()
        self.client.login(email=self.user.email, password='******')
        self.book = factory.BookFactory()
示例#9
0
    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)
示例#10
0
    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'))
示例#11
0
    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)
示例#12
0
    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'))