From d18bf0dd383f191bceeedb08165538c6c748c908 Mon Sep 17 00:00:00 2001 From: Manpreet Kaur Date: Fri, 12 Aug 2022 15:57:44 +0530 Subject: [PATCH] Add negative FT for VNF package in multi tenancy In a multi-tenant environment, the user's request to show or delete a VNF package of a different tenant should fail. This patch adds negative functional test cases for VNF package show and delete operations. Implements: bp enhance-multi-tenant-policy Change-Id: I0dc8cc163d1d78b4447439138657dfbe86aee729 --- .../vnflcm/test_vnf_lcm_with_multi_tenant.py | 44 ++++++++++++++----- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/tacker/tests/functional/sol_multi_tenant/vnflcm/test_vnf_lcm_with_multi_tenant.py b/tacker/tests/functional/sol_multi_tenant/vnflcm/test_vnf_lcm_with_multi_tenant.py index 799e00174..75b822cdb 100644 --- a/tacker/tests/functional/sol_multi_tenant/vnflcm/test_vnf_lcm_with_multi_tenant.py +++ b/tacker/tests/functional/sol_multi_tenant/vnflcm/test_vnf_lcm_with_multi_tenant.py @@ -125,7 +125,7 @@ class VnfLcmWithMultiTenant(base.BaseVnfLcmMultiTenantTest): base_path=self.base_url), "PATCH", content_type='application/json', body=update_req_body) - self.assertEqual(200, resp.status_code) + return resp.status_code def assert_vnf_package_usage_state( self, @@ -287,17 +287,13 @@ class VnfLcmWithMultiTenant(base.BaseVnfLcmMultiTenantTest): - Show VNF Package - User A only gets information about VNF Package A. - User B only gets information about VNF Package B. + - User A fails to get information about VNF Package B. + - User B fails to get information about VNF Package A. - Delete VNF Package - - User A deletes VNF Package A. - - User B deletes VNF Package B. - TODO(manpreetk): Only positive test cases are validated in - Y-release. - Negative test cases - User A fails to delete VNF Package B. - User B fails to delete VNF Package A. - Validation of negative test cases would require design changes - in Fake NFVO server, which could be implemented in the upcoming - cycle. + - User A deletes VNF Package A. + - User B deletes VNF Package B. """ # Create and Upload VNF Package # User A creates VNF Package A @@ -362,16 +358,40 @@ class VnfLcmWithMultiTenant(base.BaseVnfLcmMultiTenantTest): show_url_t2, "GET") self.assertEqual(200, resp_t2.status_code) + # User A fails to get information about VNF Package B + show_url = os.path.join(self.base_url, vnf_pkg_id2) + resp, body = self.http_client_tenant1.do_request( + show_url, "GET") + self.assertEqual(404, resp.status_code) + + # User B fails to get information about VNF Package A + show_url_t2 = os.path.join(self.base_url, vnf_pkg_id) + resp_t2, body_t2 = self.http_client_tenant2.do_request( + show_url_t2, "GET") + self.assertEqual(404, resp_t2.status_code) + # Delete VNF Package - # User A deletes VNF Package A - self._disable_operational_state(vnf_pkg_id, + # User A fails to delete VNF Package B + resp_status_code = self._disable_operational_state(vnf_pkg_id2, self.http_client_tenant1) + self.assertEqual(404, resp_status_code) + + # User B fails to delete VNF Package A + resp_status_code = self._disable_operational_state(vnf_pkg_id, + self.http_client_tenant2) + self.assertEqual(404, resp_status_code) + + # User A deletes VNF Package A + resp_status_code = self._disable_operational_state(vnf_pkg_id, + self.http_client_tenant1) + self.assertEqual(200, resp_status_code) self._delete_vnf_package(vnf_pkg_id, self.http_client_tenant1) self._wait_for_delete(vnf_pkg_id, self.http_client_tenant1) # User B deletes VNF Package B - self._disable_operational_state(vnf_pkg_id2, + resp_status_code = self._disable_operational_state(vnf_pkg_id2, self.http_client_tenant2) + self.assertEqual(200, resp_status_code) self._delete_vnf_package(vnf_pkg_id2, self.http_client_tenant2) self._wait_for_delete(vnf_pkg_id2, self.http_client_tenant2)