diff --git a/models.py b/models.py index 9c4ec41..c1d99bf 100644 --- a/models.py +++ b/models.py @@ -26,6 +26,7 @@ class BookIn(BaseModel): title: str author: str + publisher: str class BookOut(BaseModel): diff --git a/repositories.py b/repositories.py index dc9ff88..4fa11e7 100644 --- a/repositories.py +++ b/repositories.py @@ -4,7 +4,7 @@ # Create a new book def create_book(db: Session, book: models.BookIn): - db_book = models.Book(title=book.title, author=book.author) + db_book = models.Book(title=book.title, author=book.author, publisher=book.publisher) db.add(db_book) db.commit() db.refresh(db_book) @@ -27,6 +27,7 @@ def update_book(db: Session, book_id: int, book: models.BookIn): if db_book: db_book.title = book.title db_book.author = book.author + db_book.publisher = book.publisher db.commit() db.refresh(db_book) return db_book diff --git a/test_main.py b/test_main.py index 3fea397..2755e9e 100644 --- a/test_main.py +++ b/test_main.py @@ -5,8 +5,8 @@ # Test data constants TEST_BOOKS = [ - {"title": "Carrie", "author": "Stephen King"}, - {"title": "Ready Player One", "author": "Ernest Cline"}, + {"title": "Carrie", "author": "Stephen King", "publisher": "Scribner"}, + {"title": "Ready Player One", "author": "Ernest Cline", "publisher": "Crown Publishing Group"}, ] class TestMainApp: @@ -26,6 +26,7 @@ def test_create_book(self, test_db): book = create_book(test_db, BookIn(**TEST_BOOKS[0])) assert book.title == TEST_BOOKS[0]["title"] assert book.author == TEST_BOOKS[0]["author"] + assert book.publisher == TEST_BOOKS[0]["publisher"] assert book.id is not None def test_get_books(self, test_db): @@ -57,7 +58,7 @@ def test_update_book(self, test_db): def test_delete_book(self, test_db): """Test deleting a book""" - book = create_book(test_db, BookIn(title="To Delete", author="Author")) + book = create_book(test_db, BookIn(title="To Delete", author="Author", publisher="Unknown")) deleted_book = delete_book(test_db, book.id) assert deleted_book is not None @@ -67,5 +68,5 @@ def test_delete_book(self, test_db): def test_nonexistent_operations(self, test_db): """Test operations on nonexistent books""" assert get_book(test_db, 999999) is None - assert update_book(test_db, 999999, BookIn(title="Test", author="Test")) is None + assert update_book(test_db, 999999, BookIn(title="Test", author="Test", publisher="Test Publisher")) is None assert delete_book(test_db, 999999) is None