sense-backend / tests /test_slack_handler.py
SHAIK ADAM SHAFI
added qa done
43482c9
Raw
History Blame Contribute Delete
1.47 kB
import pytest
from unittest.mock import patch, MagicMock
import pandas as pd
from connectors.slack_handler import SlackHandler
@pytest.fixture
def slack_handler():
return SlackHandler()
@patch('connectors.slack_handler.WebClient')
def test_fetch_messages_success(mock_webclient, slack_handler):
mock_client = MagicMock()
mock_webclient.return_value = mock_client
mock_client.conversations_history.return_value = {
"ok": True,
"messages": [
{"user": "U123", "text": "Hello world", "ts": "12345.67"}
]
}
df = slack_handler.fetch_messages("fake-token", "C123")
assert not df.empty
assert len(df) == 1
assert df.iloc[0]["Content"] == "Hello world"
assert df.iloc[0]["Sender"] == "U123"
@patch('connectors.slack_handler.WebClient')
def test_fetch_messages_api_error(mock_webclient, slack_handler):
mock_client = MagicMock()
mock_webclient.return_value = mock_client
from slack_sdk.errors import SlackApiError
mock_client.conversations_history.side_effect = SlackApiError("Error", response={"error": "channel_not_found"})
df = slack_handler.fetch_messages("fake-token", "invalid")
assert df.empty
@patch('connectors.slack_handler.WebClient')
def test_fetch_messages_http_error(mock_webclient, slack_handler):
mock_webclient.side_effect = Exception("Some connection error")
df = slack_handler.fetch_messages("fake-token", "C123")
assert df.empty