feat(api): implement notebook management CRUD endpoints
Implement Sprint 1: Notebook Management CRUD
- Add NotebookService with full CRUD operations
- Add POST /api/v1/notebooks (create notebook)
- Add GET /api/v1/notebooks (list with pagination)
- Add GET /api/v1/notebooks/{id} (get by ID)
- Add PATCH /api/v1/notebooks/{id} (partial update)
- Add DELETE /api/v1/notebooks/{id} (delete)
- Add Pydantic models for requests/responses
- Add custom exceptions (ValidationError, NotFoundError, NotebookLMError)
- Add comprehensive unit tests (31 tests, 97% coverage)
- Add API integration tests (26 tests)
- Fix router prefix duplication
- Fix JSON serialization in error responses
BREAKING CHANGE: None
This commit is contained in:
1
tests/e2e/__init__.py
Normal file
1
tests/e2e/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
# Placeholder for e2e tests package
|
||||
22
tests/e2e/test_workflows/test_full_workflow.py
Normal file
22
tests/e2e/test_workflows/test_full_workflow.py
Normal file
@@ -0,0 +1,22 @@
|
||||
"""E2E tests placeholder.
|
||||
|
||||
These tests will verify complete workflows with real NotebookLM API.
|
||||
Requires authentication and should be run manually.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.mark.e2e
|
||||
class TestFullWorkflow:
|
||||
"""End-to-end workflow tests."""
|
||||
|
||||
async def test_research_to_podcast_workflow(self):
|
||||
"""Should complete full research to podcast workflow."""
|
||||
# TODO: Implement E2E test
|
||||
# 1. Create notebook
|
||||
# 2. Add sources
|
||||
# 3. Generate audio
|
||||
# 4. Wait for completion
|
||||
# 5. Download artifact
|
||||
pytest.skip("E2E tests require NotebookLM authentication")
|
||||
Reference in New Issue
Block a user