diff options
author | Milo Casagrande <milo.casagrande@linaro.org> | 2015-03-10 12:18:26 +0100 |
---|---|---|
committer | Milo Casagrande <milo.casagrande@linaro.org> | 2015-03-10 12:18:26 +0100 |
commit | b4b09fc60a3a4df290c5b812ebece3ba2a0a791f (patch) | |
tree | 0c916efca4196ef65cb79b9f77535294b4aa5f8e | |
parent | 3caac2361b4fdd53f5ff6499f75d480ce7a7dce8 (diff) |
Use new test base handler, implement PUT.
-rw-r--r-- | app/handlers/test_set.py | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/app/handlers/test_set.py b/app/handlers/test_set.py index 4fd58c0..1d73f07 100644 --- a/app/handlers/test_set.py +++ b/app/handlers/test_set.py @@ -17,17 +17,16 @@ import bson import datetime import types - -import handlers.base as hbase import handlers.common as hcommon import handlers.response as hresponse +import handlers.test_base as htbase import models import models.test_set as mtset import utils.db # pylint: disable=too-many-public-methods -class TestSetHandler(hbase.BaseHandler): +class TestSetHandler(htbase.TestBaseHandler): """The test set request handler.""" def __init__(self, application, request, **kwargs): @@ -35,16 +34,12 @@ class TestSetHandler(hbase.BaseHandler): @property def collection(self): - return models.TEST_SET_COLLECTION + return self.db[models.TEST_SET_COLLECTION] @staticmethod def _valid_keys(method): return hcommon.TEST_SET_VALID_KEYS.get(method, None) - @staticmethod - def _token_validation_func(): - return hcommon.valid_token_tests - def _post(self, *args, **kwargs): response = hresponse.HandlerResponse() set_id = kwargs.get("id", None) @@ -109,3 +104,29 @@ class TestSetHandler(hbase.BaseHandler): response.reason = "Wrong ID specified" return response + + def _put(self, *args, **kwargs): + response = hresponse.HandlerResponse() + update_doc = kwargs.get("json_obj") + doc_id = kwargs.get("id") + + try: + set_id = bson.objectid.ObjectId(doc_id) + if utils.db.find_one2(self.collection, set_id): + update_val = utils.db.update( + self.collection, set_id, update_doc) + + if update_val == 200: + response.reason = "Resource '%s' updated" % doc_id + else: + response.status_code = update_val + response.reason = "Error updating resource '%s'" % doc_id + else: + response.status_code = 404 + response.reason = self._get_status_message(404) + except bson.errors.InvalidId, ex: + self.log.exception(ex) + self.log.error("Invalid ID specified: %s", doc_id) + response.status_code = 400 + response.reason = "Wrong ID specified" + return response |