class Controller(object): """Version 1 API controller root.""" plans = plan.PlansController() assemblies = assembly.AssembliesController() services = service.ServicesController() components = component.ComponentsController() extensions = extension.ExtensionsController() operations = operation.OperationsController() sensors = sensor.SensorsController() language_packs = language_pack.LanguagePacksController() pipelines = pipeline.PipelinesController() public = public.PublicController() infrastructure = infrastructure.InfrastructureController() @exception.wrap_wsme_controller_exception @wsme_pecan.wsexpose(Platform) def index(self): host_url = '%s/%s' % (pecan.request.host_url, 'v1') return Platform(uri=host_url, name='solum', type='platform', description='solum native implementation', implementation_version=version.version_string(), plans_uri='%s/plans' % host_url, assemblies_uri='%s/assemblies' % host_url, services_uri='%s/services' % host_url, components_uri='%s/components' % host_url, extensions_uri='%s/extensions' % host_url, language_packs_uri='%s/language_packs' % host_url)
def test_language_packs_get_all(self, LanguagePackHandler, resp_mock, request_mock): hand_get = LanguagePackHandler.return_value.get_all hand_get.return_value = [] resp = language_pack.LanguagePacksController().get_all() hand_get.assert_called_with() self.assertEqual(200, resp_mock.status) self.assertIsNotNone(resp)
def test_language_packs_post_nodata(self, LanguagePackHandler, resp_mock, request_mock): request_mock.body = '' request_mock.content_type = 'application/json' hand_create = LanguagePackHandler.return_value.create hand_create.return_value = fakes.FakeImage() ret_val = language_pack.LanguagePacksController().post() faultstring = str(ret_val['faultstring']) self.assertEqual("Missing argument: \"data\"", faultstring) self.assertEqual(400, resp_mock.status)
def test_language_packs_post(self, LanguagePackHandler, resp_mock, request_mock): json_create = {'name': 'foo'} request_mock.body = json.dumps(json_create) request_mock.content_type = 'application/json' hand_create = LanguagePackHandler.return_value.create hand_create.return_value = image_sample language_pack.LanguagePacksController().post() json_create.update(dict(tags=['solum::lp'])) hand_create.assert_called_with(json_create) self.assertEqual(201, resp_mock.status)
def test_language_packs_post(self, LanguagePackHandler, resp_mock, request_mock, mock_policy): mock_policy.return_value = True json_create = {'name': 'foo', 'source_uri': '[email protected]/sample/a.git', 'lp_metadata': 'some metadata', 'lp_params': {}} request_mock.body = json.dumps(json_create) request_mock.content_type = 'application/json' hand_create = LanguagePackHandler.return_value.create hand_create.return_value = fakes.FakeImage() language_pack.LanguagePacksController().post() del json_create['lp_metadata'] del json_create['lp_params'] hand_create.assert_called_with(json_create, 'some metadata', {}) self.assertEqual(201, resp_mock.status)
def test_language_packs_post_longname(self, LanguagePackHandler, resp_mock, request_mock, mock_policy): mock_policy.return_value = True json_create = {'name': 'a' * 101, 'source_uri': '[email protected]/sample/a.git', 'lp_metadata': 'some metadata'} request_mock.body = json.dumps(json_create) request_mock.content_type = 'application/json' hand_create = LanguagePackHandler.return_value.create hand_create.return_value = fakes.FakeImage() ret_val = language_pack.LanguagePacksController().post() faultstring = str(ret_val['faultstring']) error_msg = 'Names must not be longer than 100 characters' self.assertTrue(faultstring.endswith(error_msg)) self.assertEqual(400, resp_mock.status)
def test_language_packs_post_capsname(self, LanguagePackHandler, resp_mock, request_mock): json_create = { 'name': 'Foo', 'source_uri': '[email protected]/sample/a.git', 'lp_metadata': 'some metadata' } request_mock.body = json.dumps(json_create) request_mock.content_type = 'application/json' hand_create = LanguagePackHandler.return_value.create hand_create.return_value = fakes.FakeImage() ret_val = language_pack.LanguagePacksController().post() faultstring = str(ret_val['faultstring']) error_msg = 'Names must only contain a-z,0-9,-,_' self.assertTrue(faultstring.endswith(error_msg)) self.assertEqual(400, resp_mock.status)
def test_language_packs_get_all(self, resp_mock, request_mock): language_packs_obj = language_pack.LanguagePacksController() language_packs_obj.get_all() self.assertEqual(200, resp_mock.status)