def test_language_pack_get_all(self, mock_clients): images_list = mock_clients.return_value.glance.return_value.images.list images_list.return_value = [image_sample] handler = language_pack_handler.LanguagePackHandler(self.ctx) resp = handler.get_all() self.assertIsNotNone(resp) images_list.assert_called_once_with(filters={'tag': ['solum::lp']})
def test_language_pack_get(self, mock_clients): images_get = mock_clients.return_value.glance.return_value.images.get images_get.return_value = image_sample handler = language_pack_handler.LanguagePackHandler(self.ctx) resp = handler.get('test_id') self.assertIsNotNone(resp) images_get.assert_called_once_with('test_id')
def test_languagepack_get(self, mock_img): mock_img.get_lp_by_name_or_uuid.return_value = {} handler = language_pack_handler.LanguagePackHandler(self.ctx) res = handler.get('test_id') self.assertIsNotNone(res) mock_img.get_lp_by_name_or_uuid.assert_called_once_with( self.ctx, 'test_id', include_operators_lp=True)
def test_languagepack_get_all(self, mock_img): mock_img.get_by_uuid.return_value = {} handler = language_pack_handler.LanguagePackHandler(self.ctx) res = handler.get_all() self.assertIsNotNone(res) mock_img.get_all_languagepacks.assert_called_once_with( self.ctx)
def test_languagepack_delete_with_plan_not_using_lp(self, mock_app, mock_planlist, mock_log_handler, mock_swift_delete, mock_img): cfg.CONF.worker.image_storage = "swift" fi = fakes.FakeImage() mock_img.get_lp_by_name_or_uuid.return_value = fi mock_img.destroy.return_value = {} mock_planlist.get_all.return_value = [fakes.FakePlan()] mock_app.get_all_by_lp.return_value = {} handler = language_pack_handler.LanguagePackHandler(self.ctx) handler.delete('lp_name') mock_img.get_lp_by_name_or_uuid.assert_called_once_with( self.ctx, 'lp_name') docker_image_name = fi.docker_image_name img_filename = docker_image_name.split('-', 1)[1] mock_swift_delete.assert_called_once_with('solum_lp', img_filename) self.assertTrue(mock_planlist.get_all.called) log_handler = mock_log_handler.return_value log_handler.delete.assert_called_once_with(fi.uuid) fi.destroy.assert_called_once_with(self.ctx)
def test_update(self, mock_clients): data = {'name': 'new_name'} img_mock = mock_clients.return_value.glance.return_value.images.update img_mock.return_value = image_sample handler = language_pack_handler.LanguagePackHandler(self.ctx) res = handler.update('fake_id', data) img_mock.assert_called_once_with('fake_id', **data) self.assertEqual(res, image_sample)
def get(self): """Return a languagepack.""" handler = language_pack_handler.LanguagePackHandler( pecan.request.security_context) host_url = pecan.request.host_url return language_pack.LanguagePack.from_db_model( handler.get(self._id), host_url)
def get_all(self): """Return all language packs, based on the query provided.""" try: handler = language_pack_handler.LanguagePackHandler() return handler.get_all() except exception.SolumException as excp: pecan.response.translatable_error = excp raise wsme.exc.ClientSideError(six.text_type(excp), excp.code)
def test_language_pack_get(self): fake_lp = language_pack.LanguagePack(language_pack_name='test') language_pack.LanguagePack.sample = mock.MagicMock( return_value=(fake_lp)) handler = language_pack_handler.LanguagePackHandler() resp = handler.get('test_id') self.assertEqual(resp.language_pack_name, fake_lp.language_pack_name)
def get_all(self): """Return all language_packs, based on the query provided.""" handler = lp_handler.LanguagePackHandler( pecan.request.security_context) return [ lp.LanguagePack.from_image(langpack, pecan.request.host_url) for langpack in handler.get_all() ]
def get(self): """Return a language pack.""" try: handler = language_pack_handler.LanguagePackHandler() return handler.get(self._id) except exception.SolumException as excp: pecan.response.translatable_error = excp raise wsme.exc.ClientSideError(six.text_type(excp), excp.code)
def post(self, data): """Create a new languagepack.""" handler = language_pack_handler.LanguagePackHandler( pecan.request.security_context) host_url = pecan.request.host_url return language_pack.LanguagePack.from_db_model( handler.create(data.as_dict(objects.registry.Image), data.lp_metadata), host_url)
def get_all(self): """Return all languagepacks, based on the query provided.""" handler = language_pack_handler.LanguagePackHandler( pecan.request.security_context) host_url = pecan.request.host_url return [ language_pack.LanguagePack.from_db_model(img, host_url) for img in handler.get_all() ]
def get(self): """Return a languagepack.""" policy.check('show_languagepack', pecan.request.security_context) handler = language_pack_handler.LanguagePackHandler( pecan.request.security_context) host_url = pecan.request.application_url.rstrip('/') return language_pack.LanguagePack.from_db_model( handler.get(self._id), host_url)
def get_all(self): """Return all languagepacks, based on the query provided.""" policy.check('get_languagepacks', pecan.request.security_context) handler = language_pack_handler.LanguagePackHandler( pecan.request.security_context) host_url = pecan.request.application_url.rstrip('/') return [ language_pack.LanguagePack.from_db_model(img, host_url) for img in handler.get_all() ]
def test_languagepack_create(self, mock_lp_build, mock_img): data = {'name': 'new app', 'source_uri': 'git://example.com/foo'} fi = fakes.FakeImage() mock_img.get_lp_by_name_or_uuid.side_effect = exc.ResourceNotFound() mock_img.return_value = fi handler = language_pack_handler.LanguagePackHandler(self.ctx) res = handler.create(data, lp_metadata=None) mock_lp_build.assert_called_once_with(res) fi.update.assert_called_once_with(data) fi.create.assert_called_once_with(self.ctx)
def test_languagepack_delete_with_plan_using_lp(self, mock_planlist, mock_img): fi = fakes.FakeImage() fi.name = 'test_lp' mock_img.get_lp_by_name_or_uuid.return_value = fi mock_img.destroy.return_value = {} mock_planlist.get_all.return_value = [fakes.FakePlan()] handler = language_pack_handler.LanguagePackHandler(self.ctx) self.assertRaises(exc.LPStillReferenced, handler.delete, 'test_lp') mock_img.get_lp_by_name_or_uuid.assert_called_once_with( self.ctx, 'test_lp') self.assertTrue(mock_planlist.get_all.called) assert not fi.destroy.called
def test_languagepack_create_limit_reached(self, mock_lp_build, mock_img): data = {'name': 'new app1', 'source_uri': '[email protected]/foo/foo.git'} cfg.CONF.set_override('max_languagepack_limit', '1', group='api') mock_img.get_num_of_lps.return_value = 1 handler = language_pack_handler.LanguagePackHandler(self.ctx) self.assertRaises(exc.ResourceLimitExceeded, handler.create, data, lp_metadata=None, lp_params=None)
def test_languagepack_create(self, mock_lp_build, mock_img): data = {'name': 'new app', 'source_uri': '[email protected]/foo/foo.git'} fi = fakes.FakeImage() cfg.CONF.set_override('max_languagepack_limit', '10', group='api') mock_img.get_num_of_lps.return_value = 1 mock_img.get_lp_by_name_or_uuid.side_effect = exc.ResourceNotFound() mock_img.return_value = fi handler = language_pack_handler.LanguagePackHandler(self.ctx) res = handler.create(data, lp_metadata=None, lp_params=None) mock_lp_build.assert_called_once_with(res, None) fi.update.assert_called_once_with(data) fi.create.assert_called_once_with(self.ctx)
def post(self, data): """Create a new languagepack.""" handler = language_pack_handler.LanguagePackHandler( pecan.request.security_context) host_url = pecan.request.host_url msg = ("Languagepack name must be 1-100 characters long, only contain " "a-z,0-9,-,_ and start with an alphabet character.") if not data.name or not data.name[0].isalpha(): raise exception.BadRequest(reason=msg) try: re.match(r'^([a-z0-9-_]{1,100})$', data.name).group(0) except AttributeError: raise exception.BadRequest(reason=msg) return language_pack.LanguagePack.from_db_model( handler.create(data.as_dict(objects.registry.Image), data.lp_metadata, data.lp_params), host_url)
def test_lp_create_bad_git_url(self, mock_img): invalid_urls_list = list() invalid_urls_list.append('http://github.com/skdhfskjhdks') invalid_urls_list.append('github.com/abc/xyz') invalid_urls_list.append('xyz://github.com/abc/xyz.git') invalid_urls_list.append('xyz://github.com/abc/xyz') invalid_urls_list.append('abc') invalid_urls_list.append('http') invalid_urls_list.append('git') for invalid_url in invalid_urls_list: data = {'name': 'new app', 'source_uri': invalid_url} handler = language_pack_handler.LanguagePackHandler(self.ctx) self.assertRaises(exc.BadRequest, handler.create, data, lp_metadata=None)
def test_languagepack_delete(self, mock_app, mock_planlist, mock_log_handler, mock_swift_delete, mock_img): fi = fakes.FakeImage() mock_img.get_lp_by_name_or_uuid.return_value = fi mock_img.destroy.return_value = {} mock_planlist.get_all.return_value = {} mock_app.get_all_by_lp.return_value = {} handler = language_pack_handler.LanguagePackHandler(self.ctx) handler.delete('test_lp') mock_img.get_lp_by_name_or_uuid.assert_called_once_with( self.ctx, 'test_lp') docker_image_name = fi.docker_image_name img_filename = docker_image_name.split('-', 1)[1] mock_swift_delete.assert_called_once_with('solum_lp', img_filename) log_handler = mock_log_handler.return_value log_handler.delete.assert_called_once_with(fi.uuid) fi.destroy.assert_called_once_with(self.ctx)
def test_lp_create_bad_git_url(self, mock_img): invalid_urls_list = list() invalid_urls_list.append('http://github.com/skdhfskjhdks') invalid_urls_list.append('github.com/abc/xyz') invalid_urls_list.append('xyz://github.com/abc/xyz.git') invalid_urls_list.append('xyz://github.com/abc/xyz') invalid_urls_list.append('abc') invalid_urls_list.append('http') invalid_urls_list.append('git') cfg.CONF.set_override('max_languagepack_limit', '10', group='api') mock_img.get_num_of_lps.return_value = 1 for invalid_url in invalid_urls_list: data = {'name': 'new app2', 'source_uri': invalid_url} handler = language_pack_handler.LanguagePackHandler(self.ctx) self.assertRaises(exc.BadRequest, handler.create, data, lp_metadata=None, lp_params=None)
def test_language_pack_get_all(self): handler = language_pack_handler.LanguagePackHandler() resp = handler.get_all() self.assertIsNotNone(resp)
def test_delete(self, mock_clients): img_mock = mock_clients.return_value.glance.return_value.images.delete handler = language_pack_handler.LanguagePackHandler(self.ctx) handler.delete('test_id') img_mock.assert_called_once_with('test_id')
def get(self): """Return a language_pack.""" handler = lp_handler.LanguagePackHandler( pecan.request.security_context) return lp.LanguagePack.from_image(handler.get(self._id), pecan.request.host_url)
def put(self, data): """Modify this language_pack.""" handler = lp_handler.LanguagePackHandler( pecan.request.security_context) res = handler.update(self._id, data.as_image_dict()) return lp.LanguagePack.from_image(res, pecan.request.host_url)
def post(self, data): """Create a new language_pack.""" handler = lp_handler.LanguagePackHandler( pecan.request.security_context) return lp.LanguagePack.from_image(handler.create(data.as_image_dict()), pecan.request.host_url)
def delete(self): """Delete a languagepack.""" policy.check('delete_languagepack', pecan.request.security_context) handler = language_pack_handler.LanguagePackHandler( pecan.request.security_context) return handler.delete(self._id)
def delete(self): """Delete a languagepack.""" handler = language_pack_handler.LanguagePackHandler( pecan.request.security_context) return handler.delete(self._id)