From 5b92656ee004e153e68198726e695ba7e9cfb29d Mon Sep 17 00:00:00 2001 From: thuva4 Date: Fri, 23 Mar 2018 12:32:13 +0530 Subject: Add projects CRUD in testapiclient implement interface to do CRUD operations for projects in testapiclient Tests are added Change-Id: I777b684b0a48a81de4555aa77bef88fd19249458 Signed-off-by: thuva4 --- .../tests/unit/test_scenario_project.py | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 testapi/testapi-client/testapiclient/tests/unit/test_scenario_project.py (limited to 'testapi/testapi-client/testapiclient/tests/unit') diff --git a/testapi/testapi-client/testapiclient/tests/unit/test_scenario_project.py b/testapi/testapi-client/testapiclient/tests/unit/test_scenario_project.py new file mode 100644 index 0000000..7bd6645 --- /dev/null +++ b/testapi/testapi-client/testapiclient/tests/unit/test_scenario_project.py @@ -0,0 +1,90 @@ +import json + +from mock import mock +from six.moves.urllib import parse + +from testapiclient.cli import scenarios +from testapiclient.tests.unit import fakes +from testapiclient.tests.unit import utils + + +class ProjectTest(utils.TestCommand): + def setUp(self): + super(ProjectTest, self).setUp() + self.base_url = parse.urljoin(self.api_url, 'scenarios/{}/projects') + self.scenario_name = 's1' + self.project_json = { + 'trust_indicators': [], + 'project': 'test-project', + 'scores': [], + 'customs': [] + } + self.project_string = json.dumps(self.project_json) + + +class ProjectCreateTest(ProjectTest): + + def setUp(self): + super(ProjectCreateTest, self).setUp() + + def test_create_success(self): + self.post_mock.return_value = fakes.FakeResponse(data=None) + project_create = scenarios.ProjectCreate(self.app, mock.Mock()) + args = [ + '--scenario-name', 's1', '--installer', 'i1', '--version', 'v1', + self.project_string] + verifies = [ + ('scenario_name', 's1'), + ('installer', 'i1'), + ('version', 'v1'), + ('project', self.project_json)] + parsed_args = self.check_parser(project_create, args, verifies) + project_create.take_action(parsed_args) + self.post_mock.assert_called_once() + + +class ProjectDeleteTest(ProjectTest): + + def setUp(self): + super(ProjectDeleteTest, self).setUp() + + def test_delete_success(self): + self.delete_mock.return_value = fakes.FakeResponse(data=None) + project_delete = scenarios.ProjectDelete(self.app, mock.Mock()) + args = [ + '--scenario-name', 's1', '--installer', 'i1', '--version', 'v1', + 'def'] + verifies = [ + ('scenario_name', 's1'), + ('installer', 'i1'), + ('version', 'v1'), + ('name', ['def'])] + parsed_args = self.check_parser(project_delete, args, verifies) + project_delete.take_action(parsed_args) + kall = self.delete_mock.call_args + args, kwargs = kall + self.assert_url( + args[0], + self.base_url + '?version=v1&installer=i1') + + +class ProjectPutTest(ProjectTest): + + def setUp(self): + super(ProjectPutTest, self).setUp() + + def test_put_success(self): + self.put_mock.return_value = fakes.FakeResponse( + data=None) + project_put = scenarios.ProjectPut(self.app, mock.Mock()) + args = [ + '--scenario-name', 's1', '--installer', 'i1', '--version', 'v1', + self.project_string] + verifies = [ + ('scenario_name', 's1'), + ('installer', 'i1'), + ('version', 'v1'), + ('project', self.project_json)] + parsed_args = self.check_parser(project_put, args, verifies) + project_put.take_action(parsed_args) + self.put_mock.assert_called_once() -- cgit 1.2.3-korg