From e1e5ef72725dbed25cbc551542de9e7a4bf259f2 Mon Sep 17 00:00:00 2001 From: Yusuke Miyazaki Date: Thu, 25 Jun 2015 14:25:03 +0900 Subject: [PATCH] Use mock in SlackChannelTestCase --- tests/tests/backends/test_slack.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/tests/tests/backends/test_slack.py b/tests/tests/backends/test_slack.py index 062f998..e9cb542 100644 --- a/tests/tests/backends/test_slack.py +++ b/tests/tests/backends/test_slack.py @@ -1,9 +1,14 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals from copy import deepcopy +try: + from unittest import mock +except ImportError: + import mock from django.conf import settings from django.test import TestCase +import requests from channels.backends.slack import SlackChannel from channels.exceptions import HttpError, ImproperlyConfigured @@ -17,16 +22,18 @@ def setUp(self): self.channel = SlackChannel(**config) def test_init(self): - with self.assertRaises(TypeError): - SlackChannel(**{}) - with self.assertRaises(ImproperlyConfigured): conf = deepcopy(config) conf["icon_emoji"] = ":+1:" conf["icon_url"] = "http://www.example.com/" SlackChannel(**conf) - def test_send(self): + @mock.patch("requests.post") + def test_send(self, m): + response = requests.Response() + response.status_code = requests.codes.ok + m.return_value = response + self.channel.send("Test message.\nhttps://slack.com/") self.channel.send("Test message. `unfurl_links=True`\n" @@ -67,12 +74,13 @@ def test_send(self): } }) - def test_send_fail(self): - conf = deepcopy(config) - conf["url"] = "https://hooks.slack.com/services/123/456/7890" - channel = SlackChannel(**conf) + @mock.patch("requests.post") + def test_send_fail_invalid_url(self, m): + response = requests.Response() + response.status_code = requests.codes.forbidden + m.return_value = response with self.assertRaises(HttpError): - channel.send("Test message", fail_silently=False) + self.channel.send("Test message", fail_silently=False) - channel.send("Test message", fail_silently=True) + self.channel.send("Test message", fail_silently=True)