refactor(06-02): update CLI and test imports to kb_workflow.pipeline
- Remove sys.path manipulation from kb_workflow.py - Update CLI imports to use kb_workflow.pipeline prefix - Update all test file imports and patch paths Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,7 @@ from datetime import datetime
|
||||
from unittest.mock import AsyncMock, MagicMock, patch
|
||||
from pathlib import Path
|
||||
|
||||
from kb_pipeline.schemas import DownloadInput, DownloadOutput
|
||||
from kb_workflow.pipeline.schemas import DownloadInput, DownloadOutput
|
||||
|
||||
|
||||
class TestDownloadInputSchema:
|
||||
@@ -180,8 +180,8 @@ class TestDownloadProcessorMetadata:
|
||||
self, mock_bilibili_adapter, mock_state_manager, tmp_path
|
||||
):
|
||||
"""Test 1: DownloadProcessor fetches Bilibili video metadata correctly"""
|
||||
from kb_pipeline.processors.download import DownloadProcessor
|
||||
from kb_pipeline.schemas import DownloadInput
|
||||
from kb_workflow.pipeline.processors.download import DownloadProcessor
|
||||
from kb_workflow.pipeline.schemas import DownloadInput
|
||||
|
||||
input_data = DownloadInput(
|
||||
content_id="BV1xx",
|
||||
@@ -190,7 +190,7 @@ class TestDownloadProcessorMetadata:
|
||||
content_type="video"
|
||||
)
|
||||
|
||||
with patch("kb_pipeline.processors.base.get_settings") as mock_settings:
|
||||
with patch("kb_workflow.pipeline.processors.base.get_settings") as mock_settings:
|
||||
mock_settings.return_value = MagicMock()
|
||||
with patch.object(
|
||||
DownloadProcessor, '_get_adapter', return_value=mock_bilibili_adapter
|
||||
@@ -212,8 +212,8 @@ class TestDownloadProcessorMetadata:
|
||||
self, mock_zhihu_adapter, mock_state_manager, tmp_path
|
||||
):
|
||||
"""Test 2: DownloadProcessor fetches Zhihu answer metadata correctly"""
|
||||
from kb_pipeline.processors.download import DownloadProcessor
|
||||
from kb_pipeline.schemas import DownloadInput
|
||||
from kb_workflow.pipeline.processors.download import DownloadProcessor
|
||||
from kb_workflow.pipeline.schemas import DownloadInput
|
||||
|
||||
input_data = DownloadInput(
|
||||
content_id="456",
|
||||
@@ -222,7 +222,7 @@ class TestDownloadProcessorMetadata:
|
||||
content_type="answer"
|
||||
)
|
||||
|
||||
with patch("kb_pipeline.processors.base.get_settings") as mock_settings:
|
||||
with patch("kb_workflow.pipeline.processors.base.get_settings") as mock_settings:
|
||||
mock_settings.return_value = MagicMock()
|
||||
with patch.object(
|
||||
DownloadProcessor, '_get_adapter', return_value=mock_zhihu_adapter
|
||||
@@ -243,8 +243,8 @@ class TestDownloadProcessorMetadata:
|
||||
self, mock_bilibili_adapter, mock_state_manager, tmp_path
|
||||
):
|
||||
"""Test 3: DownloadProcessor records state on success"""
|
||||
from kb_pipeline.processors.download import DownloadProcessor
|
||||
from kb_pipeline.schemas import DownloadInput, WorkflowState
|
||||
from kb_workflow.pipeline.processors.download import DownloadProcessor
|
||||
from kb_workflow.pipeline.schemas import DownloadInput, WorkflowState
|
||||
|
||||
# Create a mock state that will be updated
|
||||
mock_state = MagicMock(spec=WorkflowState)
|
||||
@@ -258,7 +258,7 @@ class TestDownloadProcessorMetadata:
|
||||
content_type="video"
|
||||
)
|
||||
|
||||
with patch("kb_pipeline.processors.base.get_settings") as mock_settings:
|
||||
with patch("kb_workflow.pipeline.processors.base.get_settings") as mock_settings:
|
||||
mock_settings.return_value = MagicMock()
|
||||
with patch.object(
|
||||
DownloadProcessor, '_get_adapter', return_value=mock_bilibili_adapter
|
||||
@@ -279,9 +279,9 @@ class TestDownloadProcessorMetadata:
|
||||
self, mock_bilibili_adapter, mock_state_manager, tmp_path
|
||||
):
|
||||
"""Test 4: DownloadProcessor records state on failure"""
|
||||
from kb_pipeline.processors.download import DownloadProcessor
|
||||
from kb_pipeline.schemas import DownloadInput, WorkflowState
|
||||
from kb_pipeline.errors import NetworkError
|
||||
from kb_workflow.pipeline.processors.download import DownloadProcessor
|
||||
from kb_workflow.pipeline.schemas import DownloadInput, WorkflowState
|
||||
from kb_workflow.pipeline.errors import NetworkError
|
||||
|
||||
# Make adapter raise an error
|
||||
mock_bilibili_adapter.fetch_metadata = AsyncMock(
|
||||
@@ -305,7 +305,7 @@ class TestDownloadProcessorMetadata:
|
||||
content_type="video"
|
||||
)
|
||||
|
||||
with patch("kb_pipeline.processors.base.get_settings") as mock_settings:
|
||||
with patch("kb_workflow.pipeline.processors.base.get_settings") as mock_settings:
|
||||
mock_settings.return_value = MagicMock()
|
||||
with patch.object(
|
||||
DownloadProcessor, '_get_adapter', return_value=mock_bilibili_adapter
|
||||
@@ -369,8 +369,8 @@ class TestDownloadProcessorContent:
|
||||
self, mock_bilibili_article_adapter, mock_state_manager, tmp_path
|
||||
):
|
||||
"""Test 1: DownloadProcessor downloads Bilibili article content"""
|
||||
from kb_pipeline.processors.download import DownloadProcessor
|
||||
from kb_pipeline.schemas import DownloadInput
|
||||
from kb_workflow.pipeline.processors.download import DownloadProcessor
|
||||
from kb_workflow.pipeline.schemas import DownloadInput
|
||||
|
||||
input_data = DownloadInput(
|
||||
content_id="CV123",
|
||||
@@ -379,7 +379,7 @@ class TestDownloadProcessorContent:
|
||||
content_type="article"
|
||||
)
|
||||
|
||||
with patch("kb_pipeline.processors.base.get_settings") as mock_settings:
|
||||
with patch("kb_workflow.pipeline.processors.base.get_settings") as mock_settings:
|
||||
mock_settings.return_value = MagicMock()
|
||||
with patch.object(
|
||||
DownloadProcessor, '_get_adapter', return_value=mock_bilibili_article_adapter
|
||||
@@ -403,8 +403,8 @@ class TestDownloadProcessorContent:
|
||||
self, mock_bilibili_video_adapter, mock_state_manager, tmp_path
|
||||
):
|
||||
"""Test 2: DownloadProcessor skips video download (handled by ASR)"""
|
||||
from kb_pipeline.processors.download import DownloadProcessor
|
||||
from kb_pipeline.schemas import DownloadInput
|
||||
from kb_workflow.pipeline.processors.download import DownloadProcessor
|
||||
from kb_workflow.pipeline.schemas import DownloadInput
|
||||
|
||||
input_data = DownloadInput(
|
||||
content_id="BV1xx",
|
||||
@@ -413,7 +413,7 @@ class TestDownloadProcessorContent:
|
||||
content_type="video"
|
||||
)
|
||||
|
||||
with patch("kb_pipeline.processors.base.get_settings") as mock_settings:
|
||||
with patch("kb_workflow.pipeline.processors.base.get_settings") as mock_settings:
|
||||
mock_settings.return_value = MagicMock()
|
||||
with patch.object(
|
||||
DownloadProcessor, '_get_adapter', return_value=mock_bilibili_video_adapter
|
||||
@@ -433,8 +433,8 @@ class TestDownloadProcessorContent:
|
||||
self, mock_bilibili_article_adapter, mock_state_manager, tmp_path
|
||||
):
|
||||
"""Test 3: DownloadProcessor creates correct output file paths"""
|
||||
from kb_pipeline.processors.download import DownloadProcessor
|
||||
from kb_pipeline.schemas import DownloadInput
|
||||
from kb_workflow.pipeline.processors.download import DownloadProcessor
|
||||
from kb_workflow.pipeline.schemas import DownloadInput
|
||||
|
||||
input_data = DownloadInput(
|
||||
content_id="CV123",
|
||||
@@ -443,7 +443,7 @@ class TestDownloadProcessorContent:
|
||||
content_type="article"
|
||||
)
|
||||
|
||||
with patch("kb_pipeline.processors.base.get_settings") as mock_settings:
|
||||
with patch("kb_workflow.pipeline.processors.base.get_settings") as mock_settings:
|
||||
mock_settings.return_value = MagicMock()
|
||||
with patch.object(
|
||||
DownloadProcessor, '_get_adapter', return_value=mock_bilibili_article_adapter
|
||||
@@ -466,16 +466,16 @@ class TestDownloadProcessorModuleExport:
|
||||
"""Tests for DownloadProcessor module export."""
|
||||
|
||||
def test_download_processor_importable_from_processors(self):
|
||||
"""Test 4: DownloadProcessor can be imported from kb_pipeline.processors"""
|
||||
from kb_pipeline.processors import DownloadProcessor
|
||||
"""Test 4: DownloadProcessor can be imported from kb_workflow.pipeline.processors"""
|
||||
from kb_workflow.pipeline.processors import DownloadProcessor
|
||||
|
||||
assert DownloadProcessor is not None
|
||||
assert hasattr(DownloadProcessor, 'STEP_NAME')
|
||||
assert DownloadProcessor.STEP_NAME == "download"
|
||||
|
||||
def test_all_processors_exported(self):
|
||||
"""All processors should be exported from kb_pipeline.processors"""
|
||||
from kb_pipeline.processors import BaseProcessor, ParseProcessor, DownloadProcessor, ASRProcessor
|
||||
"""All processors should be exported from kb_workflow.pipeline.processors"""
|
||||
from kb_workflow.pipeline.processors import BaseProcessor, ParseProcessor, DownloadProcessor, ASRProcessor
|
||||
|
||||
assert BaseProcessor is not None
|
||||
assert ParseProcessor is not None
|
||||
|
||||
Reference in New Issue
Block a user