Adding Agent unit test and asserting calls to logging.

This commit is contained in:
Mitsuo Takaki
2016-04-29 23:49:51 -07:00
parent a6cf64e2b4
commit c7a28edac2
2 changed files with 38 additions and 1 deletions

View File

@@ -4,9 +4,9 @@ import unittest
import sys
from requests import ConnectionError,HTTPError,Timeout
sys.modules['requests'] = mock.Mock()
sys.modules['logging'] = mock.Mock()
from cachet_url_monitor.configuration import Configuration
class ConfigurationTest(unittest.TestCase):
def setUp(self):
self.configuration = Configuration('config.yml')
@@ -38,6 +38,7 @@ class ConfigurationTest(unittest.TestCase):
return 0.1
def request(method, url, timeout=None):
response = mock.Mock()
# We are expecting a 200 response, so this will fail the expectation.
response.status_code = 400
response.elapsed = mock.Mock()
response.elapsed.total_seconds = total_seconds
@@ -60,6 +61,7 @@ class ConfigurationTest(unittest.TestCase):
self.configuration.evaluate()
assert self.configuration.status == 3
sys.modules['logging'].warning.assert_called_with('Request timed out')
def test_evaluate_with_connection_error(self):
def request(method, url, timeout=None):
@@ -73,6 +75,8 @@ class ConfigurationTest(unittest.TestCase):
self.configuration.evaluate()
assert self.configuration.status == 3
sys.modules['logging'].warning.assert_called_with(('The URL is '
'unreachable: GET http://localhost:8080/swagger'))
def test_evaluate_with_http_error(self):
def request(method, url, timeout=None):
@@ -86,6 +90,8 @@ class ConfigurationTest(unittest.TestCase):
self.configuration.evaluate()
assert self.configuration.status == 3
sys.modules['logging'].exception.assert_called_with(('Unexpected HTTP '
'response'))
def test_push_status_and_metrics(self):
def put(url, params=None, headers=None):

31
tests/test_scheduler.py Normal file
View File

@@ -0,0 +1,31 @@
#!/usr/bin/env python
import mock
import unittest
import sys
sys.modules['schedule'] = mock.Mock()
from cachet_url_monitor.scheduler import Agent
class AgentTest(unittest.TestCase):
def setUp(self):
self.configuration = mock.Mock()
self.agent = Agent(self.configuration)
def test_init(self):
assert self.agent.configuration == self.configuration
def test_execute(self):
evaluate = self.configuration.evaluate
push_status_and_metrics = self.configuration.push_status_and_metrics
self.agent.execute()
evaluate.assert_called_once()
push_status_and_metrics.assert_called_once()
def test_start(self):
every = sys.modules['schedule'].every
self.configuration.data = {'frequency': 5}
self.agent.start()
every.assert_called_with(5)