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()
# Copyright 2014 mysqlapi authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. from django.conf.urls import patterns, url from mysqlapi.api.decorators import basic_auth_required from mysqlapi.api.views import (BindApp, BindUnit, CreateDatabase, DropDatabase, Healthcheck) urlpatterns = patterns( '', url(r'^resources$', basic_auth_required(CreateDatabase.as_view())), url(r'^resources/(?P<name>[\w-]+)$', basic_auth_required(DropDatabase.as_view())), url(r'^resources/(?P<name>[\w-]+)/bind$', basic_auth_required(BindUnit.as_view())), url(r'^resources/(?P<name>[\w-]+)/bind-app$', basic_auth_required(BindApp.as_view())), url(r'^resources/(?P<name>[\w-]+)/export$', 'mysqlapi.api.views.export'), url(r'^resources/(?P<name>[\w-]+)/status$', basic_auth_required(Healthcheck.as_view())), )
from django.conf.urls import patterns, url from mysqlapi.api.views import CreateUserOrDropDatabase, Healthcheck urlpatterns = patterns('', url(r'^resources/$', 'mysqlapi.api.views.create_database'), # post url(r'^resources/(?P<name>[\w-]+)/$', CreateUserOrDropDatabase.as_view()), # post and delete url(r'^resources/(?P<name>[\w-]+)/export/$', 'mysqlapi.api.views.export'), # get url(r'^resources/(?P<name>[\w-]+)/status/$', Healthcheck.as_view()), # get url(r'^resources/(?P<name>[\w-]+)/hostname/(?P<hostname>[\w.]+)/$', 'mysqlapi.api.views.drop_user'), # delete )
# Copyright 2014 mysqlapi authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. from django.conf.urls import patterns, url from mysqlapi.api.decorators import basic_auth_required from mysqlapi.api.views import (BindApp, BindUnit, CreateDatabase, DropDatabase, Healthcheck) urlpatterns = patterns('', url(r'^resources$', basic_auth_required(CreateDatabase.as_view())), url(r'^resources/(?P<name>[\w-]+)$', basic_auth_required(DropDatabase.as_view())), url(r'^resources/(?P<name>[\w-]+)/bind$', basic_auth_required(BindUnit.as_view())), url(r'^resources/(?P<name>[\w-]+)/bind-app$', basic_auth_required(BindApp.as_view())), url(r'^resources/(?P<name>[\w-]+)/export$', 'mysqlapi.api.views.export'), url(r'^resources/(?P<name>[\w-]+)/status$', basic_auth_required(Healthcheck.as_view())), )
# Copyright 2013 mysqlapi authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. from django.conf.urls import patterns, url from mysqlapi.api.views import (CreateUserOrDropDatabase, CreateDatabase, Healthcheck) urlpatterns = patterns('', url(r'^resources$', CreateDatabase.as_view()), # post url(r'^resources/(?P<name>[\w-]+)$', CreateUserOrDropDatabase.as_view()), url(r'^resources/(?P<name>[\w-]+)/export$', 'mysqlapi.api.views.export'), # get url(r'^resources/(?P<name>[\w-]+)/status$', Healthcheck.as_view()), # get url(r'^resources/(?P<name>[\w-]+)/hostname/' + '(?P<hostname>[\w.]+)$', 'mysqlapi.api.views.drop_user'), )