Bugfix: Error when using API(v1) to run test suite 77/54177/5
authorchenjiankun <chenjiankun1@huawei.com>
Tue, 20 Mar 2018 09:05:31 +0000 (09:05 +0000)
committerchenjiankun <chenjiankun1@huawei.com>
Thu, 22 Mar 2018 11:50:17 +0000 (11:50 +0000)
JIRA: YARDSTICK-1098

The reason is missing TasksHandler parameter to run test suite.

Change-Id: I9dd45caa87d0e39afbf7485443a6e566317f5cea
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
api/resources/v1/testsuites.py
yardstick/tests/unit/apiserver/resources/v1/__init__.py [new file with mode: 0644]
yardstick/tests/unit/apiserver/resources/v1/test_testsuites.py [new file with mode: 0644]

index 5f72c2e..3e14670 100644 (file)
@@ -20,6 +20,7 @@ from yardstick.common.utils import result_handler
 from yardstick.benchmark.core import Param
 from yardstick.benchmark.core.task import Task
 from api.swagger import models
+from api.database.v1.handlers import TasksHandler
 
 LOG = logging.getLogger(__name__)
 LOG.setLevel(logging.DEBUG)
@@ -58,7 +59,7 @@ class V1Testsuite(ApiResource):
         task_args.update(args.get('opts', {}))
 
         param = Param(task_args)
-        task_thread = TaskThread(Task().start, param)
+        task_thread = TaskThread(Task().start, param, TasksHandler())
         task_thread.start()
 
         return result_handler(consts.API_SUCCESS, {'task_id': task_id})
diff --git a/yardstick/tests/unit/apiserver/resources/v1/__init__.py b/yardstick/tests/unit/apiserver/resources/v1/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/yardstick/tests/unit/apiserver/resources/v1/test_testsuites.py b/yardstick/tests/unit/apiserver/resources/v1/test_testsuites.py
new file mode 100644 (file)
index 0000000..85c045f
--- /dev/null
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+import mock
+
+import unittest
+
+from yardstick.tests.unit.apiserver import APITestCase
+from api.utils.thread import TaskThread
+
+
+class TestsuiteTestCase(APITestCase):
+
+    def test_run_test_suite(self):
+        if self.app is None:
+            unittest.skip('host config error')
+            return
+
+        TaskThread.start = mock.MagicMock()
+
+        url = 'yardstick/testsuites/action'
+        data = {
+            'action': 'run_test_suite',
+            'args': {
+                'opts': {},
+                'testsuite': 'opnfv_smoke'
+            }
+        }
+        resp = self._post(url, data)
+        self.assertEqual(resp.get('status'), 1)