Coverage for app / backend / src / tests / test_slack.py: 100%
19 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-11 01:51 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-11 01:51 +0000
1from unittest.mock import patch
3import pytest
5from couchers.config import config
6from couchers.slack import send_slack_message
9@pytest.fixture(autouse=True)
10def _(testconfig):
11 # testconfig saves/restores the global config dict, so any mutations
12 # (e.g. setting SLACK_ENABLED=True) are automatically reverted after each test
13 pass
16def test_send_slack_message_disabled():
17 with patch("couchers.slack.requests.post") as mock_post:
18 send_slack_message("test-channel", "Test message")
19 mock_post.assert_not_called()
22def test_send_slack_message_enabled():
23 config["SLACK_ENABLED"] = True
24 config["SLACK_BOT_TOKEN"] = "xoxb-test-token"
26 with patch("couchers.slack.requests.post") as mock_post:
27 mock_post.return_value.raise_for_status.return_value = None
28 mock_post.return_value.json.return_value = {"ok": True}
29 send_slack_message("test-channel", "Test message")
30 mock_post.assert_called_once_with(
31 "https://slack.com/api/chat.postMessage",
32 headers={"Authorization": "Bearer xoxb-test-token"},
33 json={"channel": "test-channel", "markdown_text": "Test message"},
34 timeout=10,
35 )