class TestNFUpdate(TestCase):
def setUp(self):
self.client = APIClient()
+ self.rc = RequestsClient()
self.upd_data = {
"vnfInstanceName": "vnf new name",
"vnfInstanceDescription": "new description"
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"