fix(05-03): fix pre-existing test issues blocking verification
- Fix test_workflow_skips_completed_steps to mock _ask_rerun_step - Fix test_fetch_video_metadata_success to use AsyncMock - Document other pre-existing test issues in deferred-items.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Deferred Items - 05-03
|
||||
|
||||
This file tracks issues discovered during 05-03 plan execution that are out of scope.
|
||||
|
||||
## Pre-existing Test Issues (Not Fixed)
|
||||
|
||||
### 1. test_platforms/test_bilibili.py - AsyncMock Issues
|
||||
|
||||
Multiple tests in `tests/test_platforms/test_bilibili.py` fail due to incorrect mock setup:
|
||||
- `test_fetch_metadata_marks_step_failed_on_error` - needs AsyncMock for `_extract_video_async`
|
||||
- `test_network_error_retries_3_times` - needs AsyncMock for `_extract_video_async`
|
||||
- `test_403_error_triggers_fallback_note` - needs AsyncMock for `_extract_video_async`
|
||||
- `test_fetch_article_metadata_success` - needs AsyncMock for `_extract_article_async`
|
||||
- `test_fetch_article_content_returns_markdown` - needs AsyncMock for `_extract_article_async`
|
||||
- `test_fetch_article_content_has_yaml_frontmatter` - needs AsyncMock for `_extract_article_async`
|
||||
|
||||
**Root Cause:** Tests use `MagicMock` for async methods that should use `AsyncMock`.
|
||||
|
||||
**Impact:** These tests fail when running full test suite.
|
||||
|
||||
**Recommended Fix:** Update all `_extract_video_async` and `_extract_article_async` mocks to use `AsyncMock`.
|
||||
|
||||
**Scope:** Out of scope for 05-03 (archive tests). Related to bilibili adapter tests, not archive functionality.
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
The following tests were fixed during 05-03 execution as they blocked test verification:
|
||||
1. `tests/test_integration/test_e2e_workflow.py::test_workflow_skips_completed_steps` - Added mock for `_ask_rerun_step`
|
||||
2. `tests/test_platforms/test_bilibili.py::test_fetch_video_metadata_success` - Changed to AsyncMock
|
||||
|
||||
These were minimal fixes needed to verify archive functionality works.
|
||||
@@ -304,7 +304,7 @@ class TestWorkflowResumability:
|
||||
)
|
||||
|
||||
with patch("kb_pipeline.pipeline.get_settings") as mock_settings:
|
||||
mock_settings.return_value = MagicMock()
|
||||
mock_settings.return_value = MagicMock(intermediate_path=str(temp_content_dir))
|
||||
|
||||
pipeline = Pipeline(
|
||||
processors=[parse_processor, download_processor],
|
||||
@@ -312,8 +312,10 @@ class TestWorkflowResumability:
|
||||
output_dir=temp_content_dir,
|
||||
)
|
||||
|
||||
# Run pipeline - parse should be skipped
|
||||
result = await pipeline.run("https://www.bilibili.com/video/BV1test123")
|
||||
# Mock _ask_rerun_step to return False (don't re-run)
|
||||
with patch.object(pipeline, '_ask_rerun_step', return_value=False):
|
||||
# Run pipeline - parse should be skipped
|
||||
result = await pipeline.run("https://www.bilibili.com/video/BV1test123")
|
||||
|
||||
# This test depends on pipeline implementation for skip logic
|
||||
# The important thing is that the pipeline runs without error
|
||||
|
||||
@@ -46,9 +46,9 @@ class TestBilibiliAdapterVideoMetadata:
|
||||
"""Test 1: fetch_metadata("BVxxx", "video") returns correct video metadata"""
|
||||
adapter = BilibiliAdapter(state_manager=mock_state_manager)
|
||||
|
||||
# Mock the extractor
|
||||
# Mock the extractor - use AsyncMock for async method
|
||||
with patch.object(adapter, '_extractor') as mock_extractor:
|
||||
mock_extractor.extract_video_metadata.return_value = mock_video_metadata
|
||||
mock_extractor._extract_video_async = AsyncMock(return_value=mock_video_metadata)
|
||||
|
||||
result = await adapter.fetch_metadata("BV1test12345", "video")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user