aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilo Casagrande <milo.casagrande@linaro.org>2015-03-10 12:18:26 +0100
committerMilo Casagrande <milo.casagrande@linaro.org>2015-03-10 12:18:26 +0100
commitb4b09fc60a3a4df290c5b812ebece3ba2a0a791f (patch)
tree0c916efca4196ef65cb79b9f77535294b4aa5f8e
parent3caac2361b4fdd53f5ff6499f75d480ce7a7dce8 (diff)
Use new test base handler, implement PUT.
-rw-r--r--app/handlers/test_set.py37
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