From e0904a046f222082399d5d5e5518fe7aa297cb53 Mon Sep 17 00:00:00 2001 From: fujinhua Date: Mon, 22 Apr 2019 17:00:59 +0800 Subject: Add ETag check ok ut case Change-Id: I59245060770801e19537567c0819a979fd91db9b Issue-ID: VFC-1306 Signed-off-by: fujinhua --- lcm/lcm/nf/biz/update_vnf.py | 1 + lcm/lcm/nf/tests/test_update_vnf.py | 41 +++++++++++++++++++++++++++++-------- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/lcm/lcm/nf/biz/update_vnf.py b/lcm/lcm/nf/biz/update_vnf.py index 311c24aa..bc9ee0f2 100644 --- a/lcm/lcm/nf/biz/update_vnf.py +++ b/lcm/lcm/nf/biz/update_vnf.py @@ -29,6 +29,7 @@ logger = logging.getLogger(__name__) class UpdateVnf(Thread): def __init__(self, data, instanceid, job_id): + super(UpdateVnf, self).__init__() self.data = data self.nf_inst_id = instanceid self.job_id = job_id diff --git a/lcm/lcm/nf/tests/test_update_vnf.py b/lcm/lcm/nf/tests/test_update_vnf.py index ce1cd6f0..3c122605 100644 --- a/lcm/lcm/nf/tests/test_update_vnf.py +++ b/lcm/lcm/nf/tests/test_update_vnf.py @@ -27,6 +27,7 @@ from lcm.nf.biz.update_vnf import UpdateVnf class TestNFUpdate(TestCase): def setUp(self): self.client = APIClient() + self.rc = RequestsClient() self.upd_data = { "vnfInstanceName": "vnf new name", "vnfInstanceDescription": "new description" @@ -53,17 +54,41 @@ class TestNFUpdate(TestCase): version="V1", package_id="2", status='INSTANTIATED').save() - rc = RequestsClient() - response = rc.patch("http://localhost:8801/api/vnflcm/v1/vnf_instances/19", - json=self.upd_data, - headers={ - "Accept": "application/json", - "Content-Type": "application/json", - "If-Match": "test_etag" - }) + response = self.rc.patch("http://localhost:8801/api/vnflcm/v1/vnf_instances/19", + json=self.upd_data, + headers={ + "Accept": "application/json", + "Content-Type": "application/json", + "If-Match": "test_etag" + }) NfInstModel.objects.filter(nfinstid=instanceid).delete() self.failUnlessEqual(status.HTTP_412_PRECONDITION_FAILED, response.status_code) + @mock.patch.object(UpdateVnf, 'run') + def test_update_vnf_etag_match(self, mock_run): + instanceid = "18" + NfInstModel(nfinstid=instanceid, + nf_name='VNF1', + nf_desc="VNF DESC", + vnfdid="1", + netype="XGW", + vendor="ZTE", + vnfSoftwareVersion="V1", + version="V1", + package_id="2", + status='INSTANTIATED').save() + resp = self.client.get("/api/vnflcm/v1/vnf_instances/18", format='json') + etag = resp["ETag"] + response = self.rc.patch("http://localhost:8801/api/vnflcm/v1/vnf_instances/18", + json=self.upd_data, + headers={ + "Accept": "application/json", + "Content-Type": "application/json", + "If-Match": etag + }) + NfInstModel.objects.filter(nfinstid=instanceid).delete() + self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code) + @mock.patch.object(restcall, 'call_req') def test_update_vnf_success(self, mock_call_req): instanceid = "12" -- cgit 1.2.3-korg