def test_cannot_save_empty_book_details(self):
     list_of_books = ListfOfBooks.objects.create()
     book = Book()
     book.title = ""  # empty book detail (title)
     book.current_page = 6
     book.total_pages = 344
     book.list_of_books = list_of_books
     with self.assertRaises(ValidationError):
         book.save()
         book.full_clean()  # fully checks empty value in TextField.
 def test_can_save_the_same_book_to_different_list(self):
     list_of_books_first = ListfOfBooks.objects.create()
     list_of_books_second = ListfOfBooks.objects.create()
     Book.objects.create(
         list_of_books=list_of_books_first,
         title='Duplicate',
         current_page=10,
         total_pages=25,
     )
     book = Book(
         list_of_books=list_of_books_second,
         title='Duplicate',
         current_page=10,
         total_pages=25,
     )
     book.full_clean()
    def test_duplicate_books_are_invalid(self):
        list_of_books = ListfOfBooks.objects.create()
        Book.objects.create(
            list_of_books=list_of_books,
            title='Duplicate',
            current_page=10,
            total_pages=25,
        )

        with self.assertRaises(ValidationError):
            book = Book(
                list_of_books=list_of_books,
                title='Duplicate',
                current_page=10,
                total_pages=25,
            )
            book.full_clean()