def test_services_get(self): params = django_request.QueryDict('network_id=the_network') request = self.mock_rest_request(GET=params) self.mock_is_service_enabled.return_value = True self.mock_is_extension_supported.return_value = True self.mock_agent_list.return_value = [ mock.Mock(**{'to_dict.return_value': { 'id': '1' }}), mock.Mock(**{'to_dict.return_value': { 'id': '2' }}) ] response = neutron.Services().get(request) self.assertStatusCode(response, 200) self.mock_is_service_enabled.assert_called_once_with( request, 'network') self.mock_is_extension_supported.assert_called_once_with( request, 'agent') self.mock_agent_list.assert_called_once_with(request, network_id='the_network') self.assertEqual(response.content.decode('utf-8'), '{"items": [{"id": "1"}, {"id": "2"}]}')
def test_services_get_disabled(self, mock_is_service_enabled): request = self.mock_rest_request( GET={"network_id": self.networks.first().id}) mock_is_service_enabled.return_value = False response = neutron.Services().get(request) self.assertStatusCode(response, 501) mock_is_service_enabled.assert_called_once_with(request, 'network')
def test_services_get_disabled(self): request = self.mock_rest_request( GET={"network_id": self._networks[0].id}) api.base.is_service_enabled(request, 'network').AndReturn(False) self.mox.ReplayAll() response = neutron.Services().get(request) self.assertStatusCode(response, 501)
def test_services_get(self, client): request = self.mock_rest_request( GET={"network_id": "the_network"}) api.base.is_service_enabled(request, 'network').AndReturn(True) api.neutron.is_extension_supported(request, 'agent').AndReturn(True) client.agent_list.return_value = [ mock.Mock(**{'to_dict.return_value': {'id': '1'}}), mock.Mock(**{'to_dict.return_value': {'id': '2'}}) ] self.mox.ReplayAll() response = neutron.Services().get(request) self.assertStatusCode(response, 200) client.agent_list.assert_called_once_with( request, network_id='the_network') self.assertEqual(response.content.decode('utf-8'), '{"items": [{"id": "1"}, {"id": "2"}]}')