Test timing separately

This commit is contained in:
David Buxton 2015-09-15 08:41:41 +01:00
parent 8f41505411
commit 1cb8e4505d

View File

@ -17,6 +17,7 @@ from datetime import timedelta, date, datetime
import json import json
import os import os
import base64 import base64
import time
from mock import Mock, patch from mock import Mock, patch
from cabot.cabotapp.models import ( from cabot.cabotapp.models import (
@ -119,6 +120,14 @@ def fake_empty_graphite_response(*args, **kwargs):
return resp return resp
def fake_slow_graphite_response(*args, **kwargs):
resp = Mock()
time.sleep(0.1)
resp.json = json.loads(get_content('graphite_null_response.json'))
resp.status_code = 200
return resp
def fake_jenkins_response(*args, **kwargs): def fake_jenkins_response(*args, **kwargs):
resp = Mock() resp = Mock()
resp.json = json.loads(get_content('jenkins_response.json')) resp.json = json.loads(get_content('jenkins_response.json'))
@ -258,8 +267,17 @@ class TestCheckRun(LocalTestCase):
self.assertFalse(self.graphite_check.last_result().succeeded) self.assertFalse(self.graphite_check.last_result().succeeded)
self.assertEqual(self.graphite_check.calculated_status, self.assertEqual(self.graphite_check.calculated_status,
Service.CALCULATED_FAILING_STATUS) Service.CALCULATED_FAILING_STATUS)
# Test results timing
@patch('cabot.cabotapp.graphite.requests.get', fake_slow_graphite_response)
def test_graphite_timing(self):
checkresults = self.graphite_check.statuscheckresult_set.all()
self.assertEqual(len(checkresults), 2)
self.graphite_check.run()
checkresults = self.graphite_check.statuscheckresult_set.all()
self.assertEqual(len(checkresults), 3)
self.assertTrue(self.graphite_check.last_result().succeeded)
self.assertGreater(list(checkresults)[-1].took, 0.0) self.assertGreater(list(checkresults)[-1].took, 0.0)
@patch('cabot.cabotapp.jenkins.requests.get', fake_jenkins_response) @patch('cabot.cabotapp.jenkins.requests.get', fake_jenkins_response)
def test_jenkins_run(self): def test_jenkins_run(self):