diff --git a/ntfy/backends/webhook.py b/ntfy/backends/webhook.py new file mode 100644 index 0000000..dd67381 --- /dev/null +++ b/ntfy/backends/webhook.py @@ -0,0 +1,11 @@ +import requests +from ..config import USER_AGENT + + +def notify(title, message, url, verify=True, retcode=None): + + payload = {"text": "*{}*\n{}".format(title, message)} + headers = {'User-Agent': USER_AGENT} + + response = requests.post(url, json=payload, headers=headers, verify=verify) + response.raise_for_status() diff --git a/tests/test_webhook.py b/tests/test_webhook.py new file mode 100644 index 0000000..9db4e60 --- /dev/null +++ b/tests/test_webhook.py @@ -0,0 +1,16 @@ +from unittest import TestCase + +from mock import patch +from ntfy.backends.webhook import notify +from ntfy.config import USER_AGENT + + +class TestWebhook(TestCase): + @patch('requests.post') + def test_basic(self, mock_post): + url = 'https://hooks.slack.com/services/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' + notify('title', 'message', url) + mock_post.assert_called_once_with( + url, + json={'text': '*{}*\n{}'.format('title', 'message')}, + headers={'User-Agent': USER_AGENT})