Пример #1
0
 def test_create_database_should_returns_500_when_name_is_blank(self):
     request = RequestFactory().post("/", {"name": ""})
     view = CreateDatabase()
     view._client = mocks.FakeEC2Client()
     response = view.post(request)
     self.assertEqual(500, response.status_code)
     self.assertEqual("Instance name is empty", response.content)
Пример #2
0
 def test_create_database_should_returns_500_when_name_is_missing(self):
     request = RequestFactory().post("/", {})
     view = CreateDatabase()
     view._client = mocks.FakeEC2Client()
     response = view.post(request)
     self.assertEqual(500, response.status_code)
     self.assertEqual("Instance name is missing", response.content)
Пример #3
0
 def test_create_database_should_returns_500_when_name_is_blank(self):
     request = RequestFactory().post("/", {"name": ""})
     view = CreateDatabase()
     view._client = mocks.FakeEC2Client()
     response = view.post(request)
     self.assertEqual(500, response.status_code)
     self.assertEqual("App name is empty", response.content)
Пример #4
0
 def test_create_database_should_returns_500_when_name_is_missing(self):
     request = RequestFactory().post("/", {})
     view = CreateDatabase()
     view._client = mocks.FakeEC2Client()
     response = view.post(request)
     self.assertEqual(500, response.status_code)
     self.assertEqual("App name is missing", response.content)
Пример #5
0
 def test_create_database_should_call_run_from_client(self):
     try:
         cli = mocks.FakeEC2Client()
         request = RequestFactory().post("/", {"name": "bowl", "service_host": "127.0.0.1"})
         view = CreateDatabase()
         view._client = cli
         response = view.post(request)
         time.sleep(0.5)
         self.assertEqual(201, response.status_code)
         self.assertIn("run instance bowl", cli.actions)
     finally:
         self.cursor.execute("DROP DATABASE IF EXISTS bowl")
Пример #6
0
    def test_create_database_should_returns_405_when_method_is_not_post(self):
        request = RequestFactory().get("/")
        view = CreateDatabase()
        response = view.dispatch(request)
        self.assertEqual(405, response.status_code)

        request = RequestFactory().put("/")
        response = view.dispatch(request)
        self.assertEqual(405, response.status_code)

        request = RequestFactory().delete("/")
        response = view.dispatch(request)
        self.assertEqual(405, response.status_code)
Пример #7
0
 def test_create_database_should_authorize_access_to_the_instance(self):
     try:
         cli = mocks.FakeEC2Client()
         t = start_creator(DatabaseManager, cli)
         data = {"name": "entre_nous", "service_host": "127.0.0.1"}
         request = RequestFactory().post("/", data)
         view = CreateDatabase()
         view._client = cli
         response = view.post(request)
         t.stop()
         self.assertEqual(201, response.status_code)
         self.assertIn("authorize instance entre_nous", cli.actions)
     finally:
         self.cursor.execute("DROP DATABASE IF EXISTS entre_nous")
Пример #8
0
 def test_create_database_should_authorize_access_to_the_instance(self):
     try:
         cli = mocks.FakeEC2Client()
         t = start_creator(DatabaseManager, cli)
         data = {"name": "entre_nous", "service_host": "127.0.0.1"}
         request = RequestFactory().post("/", data)
         view = CreateDatabase()
         view._client = cli
         response = view.post(request)
         t.stop()
         self.assertEqual(201, response.status_code)
         self.assertIn("authorize instance entre_nous", cli.actions)
     finally:
         self.cursor.execute("DROP DATABASE IF EXISTS entre_nous")
Пример #9
0
 def test_create_database_should_call_run_from_client(self):
     try:
         cli = mocks.FakeEC2Client()
         t = start_creator(DatabaseManager, cli)
         data = {"name": "bowl", "service_host": "127.0.0.1"}
         request = RequestFactory().post("/", data)
         view = CreateDatabase()
         view._client = cli
         response = view.post(request)
         t.stop()
         self.assertEqual(201, response.status_code)
         self.assertIn("run instance bowl", cli.actions)
     finally:
         self.cursor.execute("DROP DATABASE IF EXISTS bowl")
Пример #10
0
 def test_create_database(self):
     try:
         request = RequestFactory().post("/", {"name": "ciclops"})
         view = CreateDatabase()
         view._client = mocks.FakeEC2Client()
         response = view.post(request)
         self.assertEqual(201, response.status_code)
         self.assertEqual("ok", response.content)
         time.sleep(0.5)
         self.cursor.execute("select SCHEMA_NAME from information_schema.SCHEMATA where SCHEMA_NAME = 'ciclops'")
         row = self.cursor.fetchone()
         self.assertEqual("ciclops", row[0])
     finally:
         db = DatabaseManager("ciclops")
         db.drop_database()
Пример #11
0
 def test_create_database_ec2(self):
     try:
         client = mocks.FakeEC2Client()
         t = start_creator(DatabaseManager, client)
         request = RequestFactory().post("/", {"name": "ciclops"})
         view = CreateDatabase()
         view._client = client
         response = view.post(request)
         self.assertEqual(201, response.status_code)
         self.assertEqual("", response.content)
         t.stop()
         sql = "select SCHEMA_NAME from information_schema.SCHEMATA " + \
               "where SCHEMA_NAME = 'ciclops'"
         self.cursor.execute(sql)
         row = self.cursor.fetchone()
         self.assertEqual("ciclops", row[0])
     finally:
         db = DatabaseManager("ciclops")
         db.drop_database()
Пример #12
0
 def test_create_database_ec2(self):
     try:
         client = mocks.FakeEC2Client()
         t = start_creator(DatabaseManager, client)
         request = RequestFactory().post("/", {"name": "ciclops"})
         view = CreateDatabase()
         view._client = client
         response = view.post(request)
         self.assertEqual(201, response.status_code)
         self.assertEqual("", response.content)
         t.stop()
         sql = "select SCHEMA_NAME from information_schema.SCHEMATA " + \
               "where SCHEMA_NAME = 'ciclops'"
         self.cursor.execute(sql)
         row = self.cursor.fetchone()
         self.assertEqual("ciclops", row[0])
     finally:
         db = DatabaseManager("ciclops")
         db.drop_database()
Пример #13
0
 def test_create_database_canonicalizes_the_name_of_the_database(self):
     settings.SHARED_SERVER = "127.0.0.1"
     request = RequestFactory().post("/", {"name": "foo-bar"})
     response = CreateDatabase().post(request)
     instances_filter = Instance.objects.filter(
         name=canonicalize_db_name("foo-bar"))
     exists = instances_filter.exists()
     sql = "DROP DATABASE IF EXISTS {0}"
     self.cursor.execute(sql.format(canonicalize_db_name("foo-bar")))
     instances_filter[0].delete()
     self.assertEqual(201, response.status_code)
     self.assertTrue(exists)
Пример #14
0
    def test_create_database_should_returns_405_when_method_is_not_post(self):
        request = RequestFactory().get("/")
        view = CreateDatabase.as_view()
        response = view(request)
        self.assertEqual(405, response.status_code)

        request = RequestFactory().put("/")
        response = view(request)
        self.assertEqual(405, response.status_code)

        request = RequestFactory().delete("/")
        response = view(request)
        self.assertEqual(405, response.status_code)
Пример #15
0
# 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'),
                       )
Пример #16
0
# 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())),
                       )
Пример #17
0
# 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())),
)