SummaryMaker / tests /test_summarizer.py
hwang2006's picture
Upload summarymaker files incluidng src, examples, etc
20e57f9 verified
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)