|
@ -1,14 +1,15 @@ |
|
|
from django.contrib.auth.models import User |
|
|
from django.contrib.auth.models import User |
|
|
from django.test import TestCase |
|
|
from django.test import TestCase |
|
|
from mock import patch |
|
|
from mock import patch |
|
|
|
|
|
from requests.exceptions import ReadTimeout |
|
|
|
|
|
|
|
|
from hc.api.models import Channel, Check |
|
|
|
|
|
|
|
|
from hc.api.models import Channel, Check, Notification |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NotifyTestCase(TestCase): |
|
|
class NotifyTestCase(TestCase): |
|
|
|
|
|
|
|
|
@patch("hc.api.models.requests") |
|
|
|
|
|
def test_webhook(self, mock_requests): |
|
|
|
|
|
|
|
|
@patch("hc.api.models.requests.get") |
|
|
|
|
|
def test_webhook(self, mock_get): |
|
|
alice = User(username="alice") |
|
|
alice = User(username="alice") |
|
|
alice.save() |
|
|
alice.save() |
|
|
|
|
|
|
|
@ -21,4 +22,21 @@ class NotifyTestCase(TestCase): |
|
|
channel.checks.add(check) |
|
|
channel.checks.add(check) |
|
|
|
|
|
|
|
|
channel.notify(check) |
|
|
channel.notify(check) |
|
|
mock_requests.get.assert_called_with(u"http://example") |
|
|
|
|
|
|
|
|
mock_get.assert_called_with(u"http://example", timeout=5) |
|
|
|
|
|
|
|
|
|
|
|
@patch("hc.api.models.requests.get", side_effect=ReadTimeout) |
|
|
|
|
|
def test_it_handles_requests_exceptions(self, mock_get): |
|
|
|
|
|
alice = User(username="alice") |
|
|
|
|
|
alice.save() |
|
|
|
|
|
|
|
|
|
|
|
check = Check() |
|
|
|
|
|
check.status = "down" |
|
|
|
|
|
check.save() |
|
|
|
|
|
|
|
|
|
|
|
channel = Channel(user=alice, kind="webhook", value="http://example") |
|
|
|
|
|
channel.save() |
|
|
|
|
|
channel.checks.add(check) |
|
|
|
|
|
|
|
|
|
|
|
channel.notify(check) |
|
|
|
|
|
|
|
|
|
|
|
assert Notification.objects.count() == 1 |