Skip to content

Conversation

@vikram-dagger
Copy link
Owner

@vikram-dagger vikram-dagger commented Sep 2, 2025

This PR adds a new publisher field to the API. It is deliberately incomplete in order to generate a test failure.

vikram-dagger pushed a commit that referenced this pull request Sep 2, 2025
@vikram-dagger
Copy link
Owner Author

  1. Updated the BookIn Pydantic model to include the 'publisher' field.
  2. Modified the 'create_book' and 'update_book' functions in the repository to handle the 'publisher' field.
  3. Updated the test data in test_main.py to include the 'publisher' field for test cases involving BookIn objects.

These changes ensure that the tests pass by providing all necessary data and maintaining the integrity constraints expected by the database.

Diff:

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 @@ import models
 
 # 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..b847a71 100644
--- a/test_main.py
+++ b/test_main.py
@@ -5,8 +5,8 @@ from sqlalchemy import create_engine, inspect
 
 # Test data constants
 TEST_BOOKS = [
-    {"title": "Carrie", "author": "Stephen King"},
-    {"title": "Ready Player One", "author": "Ernest Cline"},
+    {"title": "Carrie", "author": "Stephen King", "publisher": "Publisher A"},
+    {"title": "Ready Player One", "author": "Ernest Cline", "publisher": "Publisher B"},
 ]
 
 class TestMainApp:
@@ -57,7 +57,7 @@ class TestBookRepository:
 
     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="Publisher C"))
         deleted_book = delete_book(test_db, book.id)
 
         assert deleted_book is not None
@@ -67,5 +67,6 @@ class TestBookRepository:
     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="Publisher D")) is None
         assert delete_book(test_db, 999999) is None
+

PR with fixes: #135

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants