def test_serialize_list(self):
        req = mock.MagicMock()
        req.client_prefers.return_value = "application/json"
        subject = []
        expected = "[]"
        results = helpers.serialize(req, subject)
        self.assertEquals(expected, results)

        subject = [dict(this="that")]
        expected = '[{"this": "that"}]'
        results = helpers.serialize(req, subject)
        self.assertEquals(expected, results)
    def test_serialize_list_yaml(self):
        req = mock.MagicMock()
        req.client_prefers.return_value = "application/yaml"
        subject = []
        expected = "[]\n"
        results = helpers.serialize(req, subject)
        self.assertEquals(expected, results)

        subject = [dict(this="that")]
        expected = "- {this: that}\n"
        results = helpers.serialize(req, subject)
        self.assertEquals(expected, results)
Exemple #3
0
 def on_get(self, req, resp, org_id):
     try:
         obj = objects.Organization.get_by_slug_or_key(req, org_id)
         resp.body = helpers.serialize(req, obj)
         resp.status = falcon.HTTP_200
     except exc.NotFound:
         self._handle_404(resp, org_id)
Exemple #4
0
 def on_get(self, req, resp, domain_id):
     try:
         domain = objects.Domain.get_by_slug_or_key(req, domain_id)
     except exc.NotFound:
         self._handle_404(resp, domain_id)
         return
     repos = domain.get_repos()
     resp.body = helpers.serialize(req, repos)
     resp.status = falcon.HTTP_200
Exemple #5
0
 def on_post(self, req, resp):
     try:
         obj = objects.Organization.from_http_req(req)
         obj.save()
         resp.body = helpers.serialize(req, obj)
         resp.status = falcon.HTTP_201
         resp.location = "/organizations/{0}".format(obj.id)
     except exc.BadInput as e:
         self._handle_400(resp, e)
Exemple #6
0
 def on_get(self, req, resp, user_id):
     try:
         user = objects.User.get_by_slug_or_key(req, user_id)
     except exc.NotFound:
         self._handle_404(resp, user_id)
         return
     keys = user.get_public_keys()
     resp.body = helpers.serialize(req, keys)
     resp.status = falcon.HTTP_200
Exemple #7
0
 def on_get(self, req, resp, group_id):
     try:
         search_spec = search.SearchSpec.from_http_req(req)
         search_spec.filter_by(groupId=group_id)
         users = objects.Group.get_users(search_spec)
         resp.body = helpers.serialize(req, users)
         resp.status = falcon.HTTP_200
     except exc.NotFound:
         self._handle_404(resp, group_id)
Exemple #8
0
 def on_post(self, req, resp):
     try:
         obj = objects.Domain.from_http_req(req)
         obj.save()
         resp.body = helpers.serialize(req, obj)
         resp.status = falcon.HTTP_201
         resp.location = "/domains/{0}".format(obj.id)
     except exc.BadInput as e:
         resp.body = "Bad input: {0}".format(e)
         resp.status = falcon.HTTP_400
Exemple #9
0
 def on_post(self, req, resp):
     try:
         obj = rest_objects.from_http_req(objects.User, req)
         self.store.save(obj)
         resp.body = helpers.serialize(req, obj)
         resp.status = falcon.HTTP_201
         resp.location = "/users/{0}".format(obj.uuid)
     except exc.BadInput as e:
         resp.body = "Bad input: {0}".format(e)
         resp.status = falcon.HTTP_400
Exemple #10
0
 def on_get(self, req, resp):
     versions = [
         {
             'major': '1',
             'minor': '0',
             'current': True
         }
     ]
     resp.body = helpers.serialize(req, versions)
     resp.status = falcon.HTTP_302
Exemple #11
0
 def on_get(self, req, resp, user_id):
     try:
         search_spec = search.SearchSpec.from_http_req(req)
         obj = self.store.get_by_slug_or_key(objects.User,
                                             user_id,
                                             search_spec)
         resp.body = helpers.serialize(req, obj)
         resp.status = falcon.HTTP_200
     except exc.NotFound:
         self._handle_404(resp, user_id)
Exemple #12
0
 def on_put(self, req, resp, user_id):
     try:
         obj = rest_objects.from_http_req(objects.User, req)
         self.store.save(obj)
         resp.body = helpers.serialize(req, obj)
         resp.status = falcon.HTTP_200
         resp.location = "/users/{0}".format(obj.uuid)
     except exc.BadInput as e:
         self._handle_400(resp, user_id, e)
     except exc.NotFound:
         self._handle_404(resp, user_id)
Exemple #13
0
 def on_put(self, req, resp, domain_id):
     try:
         obj = objects.Domain.from_http_req(req)
         obj.update()
         resp.body = helpers.serialize(req, obj)
         resp.status = falcon.HTTP_200
         resp.location = "/domains/{0}".format(obj.id)
     except exc.BadInput as e:
         self._handle_400(resp, domain_id, e)
     except exc.NotFound:
         self._handle_404(resp, domain_id)
Exemple #14
0
 def on_get(self, req, resp, group_id):
     try:
         search_spec = search.SearchSpec.from_http_req(req)
         group = self.store.get_by_slug_or_key(objects.Group,
                                               group_id,
                                               search_spec)
     except exc.NotFound:
         self._handle_404(resp, group_id)
         return
     users = group.get_users()
     resp.body = helpers.serialize(req, users)
     resp.status = falcon.HTTP_200
Exemple #15
0
 def on_get(self, req, resp, user_id, fingerprint):
     try:
         user = objects.User.get_by_slug_or_key(req, user_id)
     except exc.NotFound:
         self._handle_404_user(resp, user_id)
         return
     try:
         search_spec = search.SearchSpec.from_http_req(req)
         search_spec.filter_by(userId=user.id, fingerprint=fingerprint)
         key = objects.UserPublicKey.get_one(search_spec)
         resp.body = helpers.serialize(req, key)
         resp.status = falcon.HTTP_200
     except exc.NotFound:
         self._handle_404(resp, user_id, fingerprint)
Exemple #16
0
 def on_post(self, req, resp, user_id):
     try:
         user = objects.User.get_by_slug_or_key(req, user_id)
     except exc.NotFound:
         self._handle_404(resp, user_id)
         return
     try:
         key = objects.UserPublicKey.from_http_req(req, userId=user.id)
         key.save()
         resp.body = helpers.serialize(req, key)
         resp.status = falcon.HTTP_201
         resp.location = "/users/{0}/keys/{1}".format(user.id, key.id)
     except exc.BadInput as e:
         resp.body = "Bad input: {0}".format(e)
         resp.status = falcon.HTTP_400
Exemple #17
0
 def on_post(self, req, resp, org_id):
     try:
         group = objects.Group.from_http_req(req, rootOrganizationId=org_id)
         group.save()
         resp.body = helpers.serialize(req, group)
         resp.status = falcon.HTTP_201
         resp.location = "/groups/{0}".format(group.id)
     except exc.NotFound:
         msg = "An organization with ID or slug {0} could not be found."
         msg = msg.format(org_id)
         resp.body = msg
         resp.status = falcon.HTTP_404
     except exc.BadInput as e:
         resp.body = "Bad input: {0}".format(e)
         resp.status = falcon.HTTP_400
Exemple #18
0
 def on_post(self, req, resp, domain_id):
     try:
         domain = objects.Domain.get_by_slug_or_key(req, domain_id)
     except exc.NotFound:
         self._handle_404(resp, domain_id)
         return
     try:
         repo = objects.Repository.from_http_req(req, domainId=domain.id)
         repo.save()
         resp.body = helpers.serialize(req, repo)
         resp.status = falcon.HTTP_201
         resp.location = "/domains/{0}/repos/{1}".format(domain_id, repo.id)
     except exc.BadInput as e:
         resp.body = "Bad input: {0}".format(e)
         resp.status = falcon.HTTP_400
Exemple #19
0
 def on_post(self, req, resp, user_id):
     try:
         search_spec = search.SearchSpec.from_http_req(req)
         user = self.store.get_by_slug_or_key(objects.User,
                                              user_id,
                                              search_spec)
     except exc.NotFound:
         self._handle_404(resp, user_id)
         return
     try:
         obj = rest_objects.from_http_req(objects.UserPublicKey,
                                          req, user_uuid=user.uuid)
         self.store.save(obj)
         resp.body = helpers.serialize(req, obj)
         resp.status = falcon.HTTP_201
         resp.location = "/users/{0}/keys/{1}".format(user.uuid,
                                                      obj.fingerprint)
     except exc.BadInput as e:
         resp.body = "Bad input: {0}".format(e)
         resp.status = falcon.HTTP_400
Exemple #20
0
    def on_get(self, req, resp, domain_id, repo_name):
        try:
            domain = objects.Domain.get_by_slug_or_key(req, domain_id)
        except exc.NotFound:
            msg = "A domain with ID or slug {0} could not be found."
            msg = msg.format(domain_id)
            resp.body = msg
            resp.status = falcon.HTTP_404
            return

        try:
            search_spec = search.SearchSpec.from_http_req(req)
            search_spec.filter_by(domainId=domain.id)
            search_spec.filter_or(name=repo_name, id=repo_name)
            repo = objects.Repository.get_one(search_spec)
            resp.body = helpers.serialize(req, repo)
            resp.status = falcon.HTTP_200
        except exc.NotFound:
            msg = "A repository with ID or name {0} could not be found."
            msg = msg.format(repo_name)
            resp.body = msg
            resp.status = falcon.HTTP_404
            return
Exemple #21
0
 def test_serialize_bad_mime_type(self):
     req = mock.MagicMock()
     req.client_prefers.return_value = None
     with testtools.ExpectedException(fexc.HTTPNotAcceptable):
         helpers.serialize(req, {})
Exemple #22
0
 def on_get(self, req, resp):
     search_spec = search.SearchSpec.from_http_req(req)
     objs = self.store.get_many(objects.User, search_spec)
     resp.body = helpers.serialize(req, objs)
     resp.status = falcon.HTTP_200
Exemple #23
0
 def on_get(self, req, resp, org_id):
     search_spec = search.SearchSpec.from_http_req(req)
     search_spec.filter_by(rootOrganizationId=org_id)
     groups = objects.Group.get_many(search_spec)
     resp.body = helpers.serialize(req, groups)
     resp.status = falcon.HTTP_200