def test_host_status_retrieve_with_container_manager(self): """ Verify retrieving Host status when it is in a container manager cluster. """ with mock.patch('cherrypy.engine.publish') as _publish: manager = mock.MagicMock(StoreHandlerManager) kube_container_mgr = KubeContainerManager({ 'server_url': 'http://127.0.0.1:8080', 'token': 'token' }) # A dummy requests.Response response = requests.Response() response.status_code = 200 response._content='{"use": "kube"}' kube_container_mgr._get = mock.MagicMock(return_value=response) manager.list_container_managers.return_value = [kube_container_mgr] _publish.return_value = [manager] test_host = make_new(HOST) test_cluster = make_new(CLUSTER) test_cluster.type = C.CLUSTER_TYPE_KUBERNETES test_cluster.hostset = [test_host.address] # Verify if the host exists the data is returned manager.get.side_effect = ( test_host, test_cluster) manager.list.return_value = Clusters.new(clusters=[test_cluster]) body = self.simulate_request('/api/v0/host/10.2.0.2/status') self.assertEqual(self.srmock.status, falcon.HTTP_200) result = json.loads(body[0]) self.assertEquals(C.CLUSTER_TYPE_KUBERNETES, result['type']) self.assertEquals('available', result['host']['status']) self.assertEquals({'use': 'kube'}, result['container_manager'])