From 8dedbb1d2905e3dab293687cc50662e8f75e335c Mon Sep 17 00:00:00 2001 From: thuva4 Date: Fri, 23 Mar 2018 12:38:39 +0530 Subject: Add trust indicators CRUD in testapiclient implement interface to do CRUD operations for trust indicators in testapiclient Tests are added Change-Id: I06b4c217d11fa55fa34387b9199aa98ac273e0a2 Signed-off-by: thuva4 --- .../testapi-client/testapiclient/cli/scenarios.py | 36 +++++++++++++++++ .../tests/unit/test_scenario_trust_indicator.py | 45 ++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 testapi/testapi-client/testapiclient/tests/unit/test_scenario_trust_indicator.py (limited to 'testapi/testapi-client/testapiclient') diff --git a/testapi/testapi-client/testapiclient/cli/scenarios.py b/testapi/testapi-client/testapiclient/cli/scenarios.py index edb45c6..c5444e2 100644 --- a/testapi/testapi-client/testapiclient/cli/scenarios.py +++ b/testapi/testapi-client/testapiclient/cli/scenarios.py @@ -489,3 +489,39 @@ class CustomPut(command.Command): ['installer', 'version', 'project'], parsed_args), parsed_args.custom) + + +class TrustIndicatorCreate(command.Command): + + def get_parser(self, prog_name): + parser = super(TrustIndicatorCreate, self).get_parser(prog_name) + parser.add_argument('--scenario-name', + type=str, + required=True, + help='Create trust indicator by scenario name') + parser.add_argument('--installer', + required=True, + help='Create trustindicator under installer name') + parser.add_argument('--version', + required=True, + help='Create trust indicator under version name') + parser.add_argument('--project', + required=True, + help='Create trust indicator under project name') + parser.add_argument('trust_indicator', + type=json.loads, + help='trust indicator create request format :\n' + '\'{ "date": (string, optional),' + '"status": (string, optional) }\',\n') + return parser + + def take_action(self, parsed_args): + print parsed_args + return self.app.client_manager.post( + urlparse.query_by( + resources_url( + parsed_args.scenario_name, + 'trust_indicators'), + ['installer', 'version', 'project'], + parsed_args), + parsed_args.trust_indicator) diff --git a/testapi/testapi-client/testapiclient/tests/unit/test_scenario_trust_indicator.py b/testapi/testapi-client/testapiclient/tests/unit/test_scenario_trust_indicator.py new file mode 100644 index 0000000..04be30c --- /dev/null +++ b/testapi/testapi-client/testapiclient/tests/unit/test_scenario_trust_indicator.py @@ -0,0 +1,45 @@ +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 TrustIndicatorTest(utils.TestCommand): + def setUp(self): + super(TrustIndicatorTest, self).setUp() + self.base_url = parse.urljoin( + self.api_url, + 'scenarios/{}/trustindicators' + ) + self.scenario_name = 's1' + self.trust_indicator_json = { + 'status': 'test_status', + 'date': '2018/01/2' + } + self.trust_indicator_string = json.dumps(self.trust_indicator_json) + + +class TrustIndicatorCreateTest(TrustIndicatorTest): + + def setUp(self): + super(TrustIndicatorCreateTest, self).setUp() + + def test_create_success(self): + self.post_mock.return_value = fakes.FakeResponse(data=None) + ti_create = scenarios.TrustIndicatorCreate(self.app, mock.Mock()) + args = [ + '--scenario-name', 's1', '--installer', 'i1', '--version', 'v1', + '--project', 'p1', self.trust_indicator_string] + verifies = [ + ('scenario_name', 's1'), + ('installer', 'i1'), + ('version', 'v1'), + ('project', 'p1'), + ('trust_indicator', self.trust_indicator_json)] + parsed_args = self.check_parser(ti_create, args, verifies) + ti_create.take_action(parsed_args) + self.post_mock.assert_called_once() -- cgit 1.2.3-korg