summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhongyuzhao <zhao.hongyu@zte.com.cn>2019-12-20 15:48:38 +0800
committerhongyuzhao <zhao.hongyu@zte.com.cn>2020-01-04 11:17:29 +0800
commit804d2a0b9a1429077a70a9084a669ae1e95143aa (patch)
treee7722e0b13a0307e32475b46215885e4353ae2ff
parent1e500889ed324943b66ece684ee70d4e4af0cf2d (diff)
Add test cases for subscription
Change-Id: I701a8a7003c921314f8b7764e62487402ef4a3a7 Issue-ID: VFC-1594 Signed-off-by: hongyuzhao <zhao.hongyu@zte.com.cn>
-rw-r--r--gvnfmadapter/driver/interfaces/tests.py130
-rw-r--r--gvnfmadapter/tox.ini2
2 files changed, 130 insertions, 2 deletions
diff --git a/gvnfmadapter/driver/interfaces/tests.py b/gvnfmadapter/driver/interfaces/tests.py
index be8f9df..87cbfeb 100644
--- a/gvnfmadapter/driver/interfaces/tests.py
+++ b/gvnfmadapter/driver/interfaces/tests.py
@@ -864,7 +864,7 @@ class InterfacesTest(TestCase):
self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
self.assertEqual("/vnf_lc_ops/NF-OPERATE-12-2a3be946-b01d-11e8-9302-08002705b121", response['Location'])
-# Heal API
+ # Heal API
@mock.patch.object(restcall, 'call_req')
def test_heal_vnf_404_NotFound(self, mock_call_req):
vnfm_info = {
@@ -969,3 +969,131 @@ class InterfacesTest(TestCase):
self.assertEqual(status.HTTP_200_OK, response.status_code, response.content)
resp_data = json.loads(response.content)
self.assertEqual({"status": "active"}, resp_data)
+
+ @mock.patch.object(restcall, 'call_req')
+ def test_add_subscriptions_success(self, mock_call_req):
+ vnfm_info = {
+ "vnfmId": "19ecbb3a-3242-4fa3-9926-8dfb7ddc29ee",
+ "name": "g_vnfm",
+ "type": "gvnfmdriver",
+ "vimId": "",
+ "vendor": "vendor1",
+ "version": "v1.0",
+ "description": "vnfm",
+ "certificateUrl": "",
+ "url": "http://10.74.44.11",
+ "userName": "admin",
+ "password": "admin",
+ "createTime": "2016-07-06 15:33:18"
+ }
+ req_data = {
+ "filter": {
+ "notificationTypes": [
+ "VnfLcmOperationOccurrenceNotification"
+ ],
+ "operationTypes": [
+ "INSTANTIATE",
+ "SCALE",
+ "SCALE_TO_LEVEL",
+ "CHANGE_FLAVOUR",
+ "TERMINATE",
+ "HEAL",
+ "OPERATE",
+ "CHANGE_EXT_CONN",
+ "MODIFY_INFO"
+ ],
+ "operationStates": [
+ "STARTING",
+ "PROCESSING",
+ "COMPLETED",
+ "FAILED_TEMP",
+ "FAILED",
+ "ROLLING_BACK",
+ "ROLLED_BACK"
+ ],
+ "vnfInstanceSubscriptionFilter": {
+ "vnfInstanceIds": [
+ "4be92ba3-cfe7-423e-b807-3da4a19f06cb"
+ ]
+ }
+ },
+ "callbackUri": "http://msb-iag:80/api/gvnfmdriver/v1/vnfs/lifecyclechangesnotification",
+ "authentication": {
+ "authType": [
+ "BASIC"
+ ],
+ "paramsBasic": {
+ "userName": "admin",
+ "password": "admin"
+ }
+ }
+ }
+ rsp_data = {
+ "id": "5f1a74db-7b57-47d2-b9b9-8897a23c3beb",
+ "callbackUri": "http://msb-iag:80/api/gvnfmdriver/v1/vnfs/lifecyclechangesnotification",
+ "_links": {
+ "self": {
+ "href": "api/vnflcm/v1/subscriptions/5f1a74db-7b57-47d2-b9b9-8897a23c3beb"
+ }
+ },
+ "filter": {
+ "notificationTypes": [
+ "VnfLcmOperationOccurrenceNotification"
+ ],
+ "operationTypes": [
+ "INSTANTIATE",
+ "SCALE",
+ "SCALE_TO_LEVEL",
+ "CHANGE_FLAVOUR",
+ "TERMINATE",
+ "HEAL",
+ "OPERATE",
+ "CHANGE_EXT_CONN",
+ "MODIFY_INFO"
+ ],
+ "operationStates": [
+ "STARTING",
+ "PROCESSING",
+ "COMPLETED",
+ "FAILED_TEMP",
+ "FAILED",
+ "ROLLING_BACK",
+ "ROLLED_BACK"
+ ],
+ "vnfInstanceSubscriptionFilter": {
+ "vnfInstanceIds": [
+ "4be92ba3-cfe7-423e-b807-3da4a19f06cb"
+ ]
+ }
+ }
+ }
+ r1 = [0, json.JSONEncoder().encode(vnfm_info), "200"]
+ r2 = [0, json.JSONEncoder().encode(rsp_data), "201"]
+ mock_call_req.side_effect = [r1, r2]
+ response = self.client.post("/api/gvnfmdriver/v1/1d247dca-8810-4785-b268-c1b32297fb5d/subscriptions",
+ data=json.dumps(req_data), content_type="application/json")
+ self.assertEqual(status.HTTP_201_CREATED, response.status_code)
+
+ @mock.patch.object(restcall, 'call_req')
+ def test_delete_subscriptions_success(self, mock_call_req):
+ vnfm_info = {
+ "vnfmId": "19ecbb3a-3242-4fa3-9926-8dfb7ddc29ee",
+ "name": "g_vnfm",
+ "type": "gvnfmdriver",
+ "vimId": "",
+ "vendor": "vendor1",
+ "version": "v1.0",
+ "description": "vnfm",
+ "certificateUrl": "",
+ "url": "http://10.74.44.11",
+ "userName": "admin",
+ "password": "admin",
+ "createTime": "2016-07-06 15:33:18"
+ }
+ r1 = [0, json.JSONEncoder().encode(vnfm_info), "200"]
+ r2 = [0, json.JSONEncoder().encode(''), "204"]
+ mock_call_req.side_effect = [r1, r2]
+ response = self.client.delete(
+ "/api/gvnfmdriver/v1/1d247dca-8810-4785-b268-c1b32297fb5d/subscriptions/5f1a74db-7b57-47d2-b9b9-8897a23c3beb",
+ data=json.dumps(''), content_type="application/json")
+ self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code)
diff --git a/gvnfmadapter/tox.ini b/gvnfmadapter/tox.ini
index ddc0f37..1c9a309 100644
--- a/gvnfmadapter/tox.ini
+++ b/gvnfmadapter/tox.ini
@@ -20,5 +20,5 @@ commands =
{[testenv]commands}
[testenv:cov]
-deps = coverage
+deps = coverage==4.2
commands = coverage xml --omit="*test*,*__init__.py,*site-packages*" \ No newline at end of file