summaryrefslogtreecommitdiffstats
path: root/testapi
diff options
context:
space:
mode:
authorSerenaFeng <feng.xiaowei@zte.com.cn>2017-08-23 15:54:45 +0800
committerSerenaFeng <feng.xiaowei@zte.com.cn>2017-08-25 13:55:38 +0800
commitf8cc76bb48d0339359d8953d9c073fa79bc391dd (patch)
tree9462bf42363ddf5c20651544ebbc3dda81067ab4 /testapi
parent9362a0b32359f9ad788e42e6f5207f3c6f6e08b0 (diff)
update scenario name
url PUT /api/v1/scenarios/<scenario_name> if new_name already exist, return Forbidden if new_name == name, return Forbidden Change-Id: If3b82b3df4a763d60dad110caca2659c5f39ab50 Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
Diffstat (limited to 'testapi')
-rw-r--r--testapi/opnfv_testapi/resources/scenario_handlers.py15
-rw-r--r--testapi/opnfv_testapi/resources/scenario_models.py6
-rw-r--r--testapi/opnfv_testapi/tests/unit/resources/test_scenario.py17
3 files changed, 37 insertions, 1 deletions
diff --git a/testapi/opnfv_testapi/resources/scenario_handlers.py b/testapi/opnfv_testapi/resources/scenario_handlers.py
index 6cdf99e..e9c19a7 100644
--- a/testapi/opnfv_testapi/resources/scenario_handlers.py
+++ b/testapi/opnfv_testapi/resources/scenario_handlers.py
@@ -114,8 +114,21 @@ class ScenarioGURHandler(GenericScenarioHandler):
self._get_one(query={'name': name})
pass
+ @swagger.operation(nickname="updateScenarioName")
def put(self, name):
- pass
+ """
+ @description: update scenario, only rename is supported currently
+ @param body: fields to be updated
+ @type body: L{ScenarioUpdateRequest}
+ @in body: body
+ @rtype: L{Scenario}
+ @return 200: update success
+ @raise 404: scenario not exist
+ @raise 403: nothing to update
+ """
+ query = {'name': name}
+ db_keys = ['name']
+ self._update(query=query, db_keys=db_keys)
@swagger.operation(nickname="deleteScenarioByName")
def delete(self, name):
diff --git a/testapi/opnfv_testapi/resources/scenario_models.py b/testapi/opnfv_testapi/resources/scenario_models.py
index c6da76b..d950ed1 100644
--- a/testapi/opnfv_testapi/resources/scenario_models.py
+++ b/testapi/opnfv_testapi/resources/scenario_models.py
@@ -167,6 +167,12 @@ class ScenarioChangeOwnerRequest(models.ModelBase):
@swagger.model()
+class ScenarioUpdateRequest(models.ModelBase):
+ def __init__(self, name=None):
+ self.name = name
+
+
+@swagger.model()
class Scenario(models.ModelBase):
"""
@property installers:
diff --git a/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py b/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py
index 4f0fad4..1367fc6 100644
--- a/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py
+++ b/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py
@@ -179,6 +179,8 @@ class TestScenarioUpdate(TestScenarioBase):
elif item in ['versions']:
locator = 'installer={}'.format(
self.installer)
+ elif item in ['rename']:
+ self.update_url = self.scenario_url
if locator:
self.update_url = '{}?{}'.format(self.update_url, locator)
@@ -409,6 +411,21 @@ class TestScenarioUpdate(TestScenarioBase):
installers)
return deletes
+ @update_url_fixture('rename')
+ @update_partial('_update', '_success')
+ def test_renameScenario(self):
+ new_name = 'new_scenario_name'
+ update = models.ScenarioUpdateRequest(name=new_name)
+ self.req_d['name'] = new_name
+ return update
+
+ @update_url_fixture('rename')
+ @update_partial('_update', '_forbidden')
+ def test_renameScenario_exist(self):
+ new_name = self.req_d['name']
+ update = models.ScenarioUpdateRequest(name=new_name)
+ return update
+
def _add(self, update_req):
return self.post_direct_url(self.update_url, update_req)