def test_message_status_was_up_now_down(self, MockFetcher): site = Website('https://example.com', 'this phrase not found') site.fetcher = MockFetcher() site.fetcher.fetch.return_value = (502, 'Nginx Error') site.new_observation('up') site.evaluate() self.assertEqual(site.message, 'https://example.com is down.')
def test_message_when_no_observation_exists(self, MockFetcher): site = Website('https://example.com', 'example') site.fetcher = MockFetcher() site.fetcher.fetch.return_value = (200, 'An example') site.clean() site.evaluate() self.assertEqual(site.message, 'https://example.com is up.')
def test_message_status_same_as_last_time(self, MockFetcher): site = Website('https://example.com', 'example') site.new_observation('up') site.fetcher = MockFetcher() site.fetcher.fetch.return_value = (200, 'This is an example') # This line would make a network call, but uses our mock instead site.evaluate() self.assertFalse(site.message, 'No Message expected')
def test_message_status_was_down_now_up(self, MockFetcher): site = Website('https://example.com', 'example') site.fetcher = MockFetcher() site.fetcher.fetch.return_value = (200, 'An example') site.new_observation('down') site.evaluate() variations = [ 'https://example.com is up. Last down duration: 0 seconds.', 'https://example.com is up. Last down duration: 1 seconds.' ] self.assertTrue(site.message in variations, 'Expected duration is either 0 or 1 second')