Example #1
0
 def setUp(self):
     self.target_url = 'testurl'
     self.required_string = 'Looking for this'
     self.max_response_time = 2
     self.page = MonitoredPage('Title', self.target_url, self.max_response_time, self.required_string)
     self.request_maker = mock()
     self.request_maker.response_time = 1
     self.request_maker.content = self.required_string
     when(self.request_maker).http_request(any()).thenReturn(self.request_maker)
     self.page.request_maker = self.request_maker
     self.page.refresh_status()
Example #2
0
class MonitoredPageTest(unittest.TestCase):
    def setUp(self):
        self.target_url = 'testurl'
        self.required_string = 'Looking for this'
        self.max_response_time = 2
        self.page = MonitoredPage('Title', self.target_url, self.max_response_time, self.required_string)
        self.request_maker = mock()
        self.request_maker.response_time = 1
        self.request_maker.content = self.required_string
        when(self.request_maker).http_request(any()).thenReturn(self.request_maker)
        self.page.request_maker = self.request_maker
        self.page.refresh_status()

    def test_refresh_status_makes_new_request(self):
        verify(self.request_maker).http_request(self.target_url)

    def test_get_response_time_returns_page_response_time(self):
        self.assertEquals(1, self.page.get_response_time())

    def test_http_errors_are_handled_when_refreshing_status(self):
        when(self.request_maker).http_request(any()).thenRaise(HTTPError("Catch this!"))
        self.page.refresh_status()
        self.assertEquals(self.page._page, None)

    def test_required_string_is_found_from_content(self):
        self.assertTrue(self.page.contains_required_string())

    def test_response_time_is_checked(self):
        self.assertTrue(self.page.responds_fast_enough())

    def test_overall_status_is_true_when_all_requirements_are_met(self):
        self.assertTrue(self.page.get_status())

    def test_raises_exception_on_http_error(self):
        when(self.request_maker).http_request(any()).thenRaise(HTTPError("Catch this!"))
        self.page.refresh_status()
        self.assertRaises(NoResponse, lambda: self.page.get_status())

    def test_status_is_false_when_max_response_time_exceeds(self):
        self.page.max_response_time = 0.5
        self.assertFalse(self.page.get_status())

    def test_status_is_false_if_content_is_not_found(self):
        self.page.should_contain = 'Not there'
        self.assertFalse(self.page.get_status())