- mock_vdc_response(mock_requests,
- url_pattern='/suite-api/api/resources/stats.*',
- response_file='OK.json')
- metrics = self.collector.collect(self.vnfr)
- self.assertEqual(len(metrics), 0, "Number of metrics returned")
+ mock_http_response(mock_requests,
+ site='https://vcd',
+ url_pattern='/api/vApp/.*',
+ response_file='vcd_vapp_response.xml')
+ response = self.collector.get_vapp_details_rest('')
+ self.assertDictContainsSubset({'vm_vcenter_info': {'vm_moref_id': 'vm-4055'}},
+ response, 'Managed object reference id incorrect')
+
+ def test_no_admin_connect(self):
+ response = self.collector.get_vapp_details_rest('')
+ self.assertDictEqual(response, {}, 'Failed to connect should return empty dictionary')
+
+ def test_no_id(self):
+ response = self.collector.get_vapp_details_rest()
+ self.assertDictEqual(response, {}, 'No id supplied should return empty dictionary')
+
+ @mock.patch('osm_mon.collector.vnf_collectors.vmware.Client')
+ def test_get_vapp_details_404(self, mock_vcd_client):
+ mock_vcd_client.return_value._session.headers = {'x-vcloud-authorization': ''}
+ with requests_mock.Mocker() as mock_requests:
+ mock_http_response(mock_requests,
+ site='https://vcd',
+ url_pattern='/api/vApp/.*',
+ response_file='404.txt', status_code=404)
+ response = self.collector.get_vapp_details_rest('')
+ self.assertDictEqual(response, {}, 'HTTP error should return empty dictionary')
+
+ @mock.patch('osm_mon.collector.vnf_collectors.vmware.Client')
+ def test_get_vapp_details_xml_parse_error(self, mock_vcd_client):
+ mock_vcd_client.return_value._session.headers = {'x-vcloud-authorization': ''}
+ with requests_mock.Mocker() as mock_requests:
+ mock_http_response(mock_requests,
+ site='https://vcd',
+ url_pattern='/api/vApp/.*',
+ response_file='404.txt')
+ response = self.collector.get_vapp_details_rest('')
+ self.assertDictEqual(response, {}, 'XML parse error should return empty dictionary')