Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions codecov/tests/test_sentiment.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
from unittest.mock import patch

import pytest

from codecov.sentiment import SentimentAnalyzer


@pytest.fixture
def sentiment_analyzer():
return SentimentAnalyzer()


@patch("codecov.sentiment.TextBlob")
def test_get_sentiment_positive(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.polarity = 0.5
assert sentiment_analyzer.get_sentiment("Great job!") == "positive"


@patch("codecov.sentiment.TextBlob")
def test_get_sentiment_negative(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.polarity = -0.5
assert sentiment_analyzer.get_sentiment("Terrible experience.") == "negative"


@patch("codecov.sentiment.TextBlob")
def test_get_sentiment_neutral(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.polarity = 0.0
assert sentiment_analyzer.get_sentiment("This is a neutral statement.") == "neutral"


@patch("codecov.sentiment.TextBlob")
def test_get_polarity_score(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.polarity = 0.75
assert sentiment_analyzer.get_polarity_score("Excellent work!") == 0.75


@patch("codecov.sentiment.TextBlob")
def test_get_subjectivity_score(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.subjectivity = 0.6
assert sentiment_analyzer.get_subjectivity_score("I think this is amazing!") == 0.6


@patch("codecov.sentiment.TextBlob")
def test_is_neutral_true(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.polarity = 0.0
assert sentiment_analyzer.is_neutral("This is a fact.") == True


@patch("codecov.sentiment.TextBlob")
def test_is_neutral_false(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.polarity = 0.5
assert sentiment_analyzer.is_neutral("This is great!") == False


@patch("codecov.sentiment.TextBlob")
def test_is_positive_true(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.polarity = 0.5
assert sentiment_analyzer.is_positive("This is wonderful!") == True


@patch("codecov.sentiment.TextBlob")
def test_is_positive_false(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.polarity = -0.5
assert sentiment_analyzer.is_positive("This is awful.") == False


@patch("codecov.sentiment.TextBlob")
def test_private_get_polarity(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.polarity = 0.8
assert sentiment_analyzer._get_polarity("Amazing!") == 0.8


@patch("codecov.sentiment.TextBlob")
def test_private_get_subjectivity(mock_textblob, sentiment_analyzer):
mock_textblob.return_value.sentiment.subjectivity = 0.9
assert sentiment_analyzer._get_subjectivity("I absolutely love this!") == 0.9
Loading