Spaces:
Sleeping
Sleeping
| import pytest | |
| #from'summarizer.summarizer import process_text | |
| from summarizer.summarizer import process_text | |
| def test_process_text_success(mocker, sample_text): | |
| """ | |
| When you create a pipeline, it's a two-step process: | |
| # Step 1: Create the pipeline | |
| summarizer = pipeline("summarization", model="t5-base") | |
| # Step 2: Use the pipeline | |
| summary = summarizer(text) | |
| # This works because it matches Step 1 - creating the pipeline | |
| mock_pipeline.assert_called_once_with("summarization", model="t5-base") | |
| # This doesn't work because it's trying to assert Step 2 | |
| mock_pipeline.assert_called_once_with(sample_text, model="t5-base") | |
| """ | |
| # If using: from transformers import pipeline in summarizer.py | |
| # This works because it matches Step 1 - creating the pipeline | |
| mock_pipeline = mocker.patch('summarizer.summarizer.pipeline') | |
| # If using: import transformers | |
| #mock_pipeline = mocker.patch('summarizer.summarizer.transformers.pipeline') | |
| mock_summarizer = mock_pipeline.return_value | |
| mock_summarizer.return_value = [{'summary_text': 'Test summary'}] | |
| #mock_pipeline.return_value.return_value = [{'summary_text': 'Test summary'}] | |
| result = process_text(sample_text.strip()) | |
| #print("result: ", result) #for debugging purpose | |
| assert result == 'Test summary' | |
| mock_pipeline.assert_called_once_with("summarization", model="t5-base") | |
| mock_summarizer.assert_called_once_with(sample_text.strip(), max_length=180) | |
| #mock_pipeline.assert_called_once_with(sample_text, model="t5-base") | |
| def test_process_text_with_custom_model(mocker, sample_text): | |
| mock_pipeline = mocker.patch('summarizer.summarizer.pipeline') | |
| mock_summarizer = mock_pipeline.return_value | |
| mock_summarizer.return_value = [{'summary_text': 'Test summary'}] | |
| custom_model = "t5-small" | |
| result = process_text(sample_text.strip(), model=custom_model) | |
| print(result) # print out result for debugging purpose | |
| assert result == 'Test summary' | |
| #mock_pipeline.assert_called_once_with("summarization", model=custom_model) | |
| mock_summarizer.assert_called_once_with(sample_text.strip(), max_length=180) | |
| def test_process_text_failure(mocker, sample_text): | |
| mock_pipeline = mocker.patch('summarizer.summarizer.pipeline') | |
| mock_summarizer = mock_pipeline.return_value | |
| mock_summarizer.return_value = [{'summary_text': 'Test summary'}] | |
| mock_pipeline.side_effect = Exception("Model error") | |
| with pytest.raises(Exception) as exc_info: | |
| process_text(sample_text.strip()) | |
| print("Exception String: ", str(exc_info.value)) # for debugging purpose | |
| assert "Summarization failed" in str(exc_info.value) | |