Skip to content

Instantly share code, notes, and snippets.

@gbvanrenswoude
Created January 18, 2023 14:50
Show Gist options
  • Save gbvanrenswoude/6de3071cce758228d02520aaae99ef4e to your computer and use it in GitHub Desktop.
Save gbvanrenswoude/6de3071cce758228d02520aaae99ef4e to your computer and use it in GitHub Desktop.
Simple Python requests mock example
import logging
import os
import requests
import unittest
from unittest.mock import patch
import requests_mock
def send_slack_message(message, slack_url):
slack_response = requests.post(
slack_url,
json={
"text": message,
"username": "brr",
"icon_emoji": ":robot_face:",
},
)
logger.info("Slack response: {}".format(slack_response))
slack_response.raise_for_status()
return slack_response
class TestSendSlackMessage(unittest.TestCase):
def test_send_slack_message_success(self):
with requests_mock.Mocker() as mock_req:
mock_req.post(
"https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
status_code=200,
)
slack_url = "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
message = "Test message"
response = send_slack_message(message, slack_url)
self.assertEqual(response.status_code, 200)
def test_send_slack_message_fail(self):
with requests_mock.Mocker() as mock_req:
mock_req.post(
"https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
status_code=500,
)
slack_url = "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
message = "Test message"
with self.assertRaises(requests.exceptions.RequestException):
send_slack_message(message, slack_url)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment