summaryrefslogtreecommitdiffstats
path: root/opnfv_testapi/resources/test_handlers.py
diff options
context:
space:
mode:
Diffstat (limited to 'opnfv_testapi/resources/test_handlers.py')
-rw-r--r--opnfv_testapi/resources/test_handlers.py47
1 files changed, 34 insertions, 13 deletions
diff --git a/opnfv_testapi/resources/test_handlers.py b/opnfv_testapi/resources/test_handlers.py
index 5ecb176..7ab20dc 100644
--- a/opnfv_testapi/resources/test_handlers.py
+++ b/opnfv_testapi/resources/test_handlers.py
@@ -78,10 +78,28 @@ class TestsCLHandler(GenericTestHandler):
if curr_user is None:
raises.Unauthorized(message.no_auth())
+ review = self.request.query_arguments.pop('review', None)
query = yield self.set_query()
- yield self._list(query=query, **limitations)
+ if review:
+ yield self._list(query=query, res_op=self.check_review,
+ **limitations)
+ else:
+ yield self._list(query=query, **limitations)
logging.debug('list end')
+ @gen.coroutine
+ def check_review(self, data, *args):
+ current_user = self.get_secure_cookie(auth_const.OPENID)
+ for test in data:
+ query = {'reviewer_openid': current_user, 'test_id': test['id']}
+ ret = yield dbapi.db_find_one('reviews', query)
+ if ret:
+ test['voted'] = 'true'
+ else:
+ test['voted'] = 'false'
+
+ raise gen.Return({self.table: data})
+
@swagger.operation(nickname="createTest")
@web.asynchronous
def post(self):
@@ -111,6 +129,8 @@ class TestsCLHandler(GenericTestHandler):
self.finish_request({'code': '403', 'msg': msg})
return
+ if self.is_onap:
+ self.json_args['is_onap'] = 'true'
self._create(miss_fields=miss_fields, carriers=carriers)
@@ -149,7 +169,6 @@ class TestsGURHandler(GenericTestHandler):
raise gen.Return('API response validation enabled')
@swagger.operation(nickname="deleteTestById")
- @web.asynchronous
@gen.coroutine
def delete(self, test_id):
curr_user = self.get_secure_cookie(auth_const.OPENID)
@@ -161,6 +180,9 @@ class TestsGURHandler(GenericTestHandler):
raises.NotFound(message.not_found(self.table, query))
if curr_user == test_data['owner'] or \
curr_user_role.find('administrator') != -1:
+ yield dbapi.db_delete('applications',
+ {'test_id': test_data['id']})
+ yield dbapi.db_delete('reviews', {'test_id': test_data['id']})
self._delete(query=query)
else:
raises.Forbidden(message.no_auth())
@@ -198,7 +220,7 @@ class TestsGURHandler(GenericTestHandler):
if query and table:
data = yield dbapi.db_find_one(table, query)
if data:
- raise gen.Return((True, 'Data alreay exists. %s' % (query),
+ raise gen.Return((True, 'Data already exists. %s' % (query),
data.get("openid")))
raise gen.Return((False, 'Data does not exist. %s' % (query), None))
@@ -255,9 +277,9 @@ class TestsGURHandler(GenericTestHandler):
return
if item == "status":
- if value in {'approved', 'not approved'}:
+ if value == 'verified':
if test['status'] == 'private':
- msg = 'Not allowed to approve/not approve'
+ msg = 'Not allowed to verify'
self.finish_request({'code': 403, 'msg': msg})
return
@@ -272,7 +294,7 @@ class TestsGURHandler(GenericTestHandler):
self.finish_request({'code': 403, 'msg': msg})
return
- if not test['sut_label']:
+ if not self.is_onap and not test['sut_label']:
msg = 'Please fill out SUT version before submission'
self.finish_request({'code': 403, 'msg': msg})
return
@@ -284,8 +306,7 @@ class TestsGURHandler(GenericTestHandler):
'id': test['id'],
'$or': [
{'status': 'review'},
- {'status': 'approved'},
- {'status': 'not approved'}
+ {'status': 'verified'}
]
}
record = yield dbapi.db_find_one("tests", test_query)
@@ -311,12 +332,12 @@ class TestsGURHandler(GenericTestHandler):
logging.debug('check review')
query['user_id'] = user
data = yield dbapi.db_find_one('applications', query)
- if not data:
- logging.debug('not found')
+ if data:
+ logging.debug('results are bound to an application')
raise gen.Return((False, message.no_auth()))
- if value == "approve" or value == "not approved":
- logging.debug('check approve')
- query['role'] = {"$regex": ".*reviewer.*"}
+ if value == "verified":
+ logging.debug('check verify')
+ query['role'] = {"$regex": ".*administrator.*"}
query['openid'] = user
data = yield dbapi.db_find_one('users', query)
if not data: