summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2019-04-22 17:00:59 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2019-04-22 17:00:59 +0800
commite0904a046f222082399d5d5e5518fe7aa297cb53 (patch)
tree7c88e4d90570c307dccefa49449c9c3bef65f7a6
parent5b05f88ce6e31a5c90fc21496c82f196f2180b2c (diff)
Add ETag check ok ut case
Change-Id: I59245060770801e19537567c0819a979fd91db9b Issue-ID: VFC-1306 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r--lcm/lcm/nf/biz/update_vnf.py1
-rw-r--r--lcm/lcm/nf/tests/test_update_vnf.py41
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"