def test_healthcheck_returns_500_if_the_mysql_server_is_off(self): request = RequestFactory().get("/resources/g8mysql/status/") with mock.patch("mysqlapi.api.models.DatabaseManager.is_up") as is_up: is_up.return_value = False view = Healthcheck() fake = mocks.FakeEC2Client() view._client = fake response = view.get(request, "g8mysql") self.assertEqual(500, response.status_code)
def test_healthcheck_returns_201_when_ec2_instance_is_running(self): request = RequestFactory().get("/resources/g8mysql/status/") with mock.patch("mysqlapi.api.models.DatabaseManager.is_up") as is_up: is_up.return_value = True view = Healthcheck() fake = mocks.FakeEC2Client() view._client = fake response = view.get(request, "g8mysql") self.assertEqual(204, response.status_code)
def test_healthcheck_doesnt_touch_ec2_when_instance_is_pending(self): self.instance.state = "pending" self.instance.save() request = RequestFactory().get("/resources/g8mysql/status/") view = Healthcheck() fake = mocks.FakeEC2ClientPendingInstance() view._client = fake response = view.get(request, "g8mysql") self.assertEqual(202, response.status_code) self.assertEqual([], fake.actions)
def test_healthcheck_does_not_calls_ec2_get_when_instance_is_pending_and_returns_500(self): self.instance.state = "pending" self.instance.save() request = RequestFactory().get("/resources/g8mysql/status/") view = Healthcheck() fake = mocks.FakeEC2ClientPendingInstance() view._client = fake response = view.get(request, "g8mysql") self.assertEqual(500, response.status_code) self.assertEqual([], fake.actions)
def test_healthcheck_returns_500_if_the_mysql_server_is_off(self): mocker = Mocker() obj = mocker.replace("mysqlapi.api.models.DatabaseManager.is_up") obj() mocker.result(False) mocker.replay() request = RequestFactory().get("/resources/g8mysql/status/") view = Healthcheck() fake = mocks.FakeEC2Client() view._client = fake response = view.get(request, "g8mysql") self.assertEqual(500, response.status_code) mocker.verify()
def test_healthcheck_calls_ec2_get_when_instance_is_running_and_returns_201(self): mocker = Mocker() obj = mocker.replace("mysqlapi.api.models.DatabaseManager.is_up") obj() mocker.result(True) mocker.count(1, 2) mocker.replay() request = RequestFactory().get("/resources/g8mysql/status/") view = Healthcheck() fake = mocks.FakeEC2Client() view._client = fake response = view.get(request, "g8mysql") self.assertEqual(204, response.status_code) mocker.verify()