Esempio n. 1
0
 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']})
Esempio n. 2
0
 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')
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
    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)
Esempio n. 6
0
 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)
Esempio n. 7
0
    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)
Esempio n. 8
0
 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)
Esempio n. 9
0
    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)
Esempio n. 10
0
 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()
     ]
Esempio n. 11
0
 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)
Esempio n. 12
0
 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)
Esempio n. 13
0
 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()
     ]
Esempio n. 14
0
    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)
Esempio n. 15
0
 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()
     ]
Esempio n. 16
0
 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)
Esempio n. 17
0
 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
Esempio n. 18
0
    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)
Esempio n. 19
0
    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)
Esempio n. 20
0
    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)
Esempio n. 22
0
    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)
Esempio n. 23
0
    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)
Esempio n. 24
0
 def test_language_pack_get_all(self):
     handler = language_pack_handler.LanguagePackHandler()
     resp = handler.get_all()
     self.assertIsNotNone(resp)
Esempio n. 25
0
 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')
Esempio n. 26
0
 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)
Esempio n. 27
0
 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)
Esempio n. 28
0
 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)
Esempio n. 29
0
 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)
Esempio n. 30
0
 def delete(self):
     """Delete a languagepack."""
     handler = language_pack_handler.LanguagePackHandler(
         pecan.request.security_context)
     return handler.delete(self._id)