Skip to content

Commit 2813ec6

Browse files
committed
Added tests
1 parent 514e3b8 commit 2813ec6

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

tests/test_slack.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import pytest
2+
from unittest.mock import patch, MagicMock
3+
from requests import HTTPError, Response
4+
from dpytools.http_clients.base import BaseHttpClient
5+
from dpytools.slack.slack import SlackNotifier
6+
7+
@patch('os.getenv')
8+
@patch.object(BaseHttpClient, 'get')
9+
def test_validate_webhook_url(mock_get, mock_getenv):
10+
"""
11+
Test that the validate_webhook_url method raises an exception for invalid URLs
12+
"""
13+
mock_getenv.return_value = 'http://example.com'
14+
mock_response = MagicMock(Response)
15+
mock_response.status_code = 404
16+
mock_get.return_value = mock_response
17+
18+
with pytest.raises(ValueError):
19+
notifier = SlackNotifier()
20+
21+
@patch('os.getenv')
22+
@patch.object(BaseHttpClient, 'get')
23+
def test_validate_webhook_url_success(mock_get, mock_getenv):
24+
"""
25+
Test that the validate_webhook_url method does not raise an exception for valid URLs
26+
"""
27+
mock_getenv.return_value = 'http://example.com'
28+
mock_response = MagicMock(Response)
29+
mock_response.status_code = 200
30+
mock_get.return_value = mock_response
31+
32+
try:
33+
notifier = SlackNotifier()
34+
except ValueError:
35+
pytest.fail("Unexpected ValueError ..")
36+
37+
@patch('os.getenv')
38+
@patch.object(BaseHttpClient, 'post')
39+
def test_notify(mock_post, mock_getenv):
40+
"""
41+
Test that the notify method sends a POST request
42+
"""
43+
mock_getenv.return_value = 'http://example.com'
44+
mock_response = MagicMock(Response)
45+
mock_response.status_code = 200
46+
mock_post.return_value = mock_response
47+
48+
notifier = SlackNotifier()
49+
notifier.notify({'text': 'Test message'})
50+
51+
mock_post.assert_called_once_with('http://example.com', json={'text': 'Test message'})

0 commit comments

Comments
 (0)