diff --git a/neutronclient/tests/unit/test_name_or_id.py b/neutronclient/tests/unit/test_name_or_id.py index 5b5dc024f..ee94b24b1 100644 --- a/neutronclient/tests/unit/test_name_or_id.py +++ b/neutronclient/tests/unit/test_name_or_id.py @@ -14,8 +14,7 @@ # under the License. # - -from mox3 import mox +import mock from oslo_utils import uuidutils import testtools @@ -30,30 +29,29 @@ class CLITestNameorID(testtools.TestCase): def setUp(self): """Prepare the test environment.""" super(CLITestNameorID, self).setUp() - self.mox = mox.Mox() self.endurl = test_cli20.ENDURL self.client = client.Client(token=test_cli20.TOKEN, endpoint_url=self.endurl) - self.addCleanup(self.mox.VerifyAll) - self.addCleanup(self.mox.UnsetStubs) def test_get_id_from_id(self): _id = uuidutils.generate_uuid() reses = {'networks': [{'id': _id, }, ], } resstr = self.client.serialize(reses) - self.mox.StubOutWithMock(self.client.httpclient, "request") + resp = (test_cli20.MyResp(200), resstr) path = getattr(self.client, "networks_path") - self.client.httpclient.request( + with mock.patch.object(self.client.httpclient, "request", + return_value=resp) as mock_request: + returned_id = neutronV20.find_resourceid_by_name_or_id( + self.client, 'network', _id) + + mock_request.assert_called_once_with( test_cli20.MyUrlComparator( test_cli20.end_url(path, "fields=id&id=" + _id), self.client), 'GET', body=None, - headers=mox.ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN) - ).AndReturn((test_cli20.MyResp(200), resstr)) - self.mox.ReplayAll() - returned_id = neutronV20.find_resourceid_by_name_or_id( - self.client, 'network', _id) + headers=test_cli20.ContainsKeyValue( + {'X-Auth-Token': test_cli20.TOKEN})) self.assertEqual(_id, returned_id) def test_get_id_from_id_then_name_empty(self): @@ -61,27 +59,32 @@ class CLITestNameorID(testtools.TestCase): reses = {'networks': [{'id': _id, }, ], } resstr = self.client.serialize(reses) resstr1 = self.client.serialize({'networks': []}) - self.mox.StubOutWithMock(self.client.httpclient, "request") path = getattr(self.client, "networks_path") - self.client.httpclient.request( - test_cli20.MyUrlComparator( - test_cli20.end_url(path, "fields=id&id=" + _id), - self.client), - 'GET', - body=None, - headers=mox.ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN) - ).AndReturn((test_cli20.MyResp(200), resstr1)) - self.client.httpclient.request( - test_cli20.MyUrlComparator( - test_cli20.end_url(path, "fields=id&name=" + _id), - self.client), - 'GET', - body=None, - headers=mox.ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN) - ).AndReturn((test_cli20.MyResp(200), resstr)) - self.mox.ReplayAll() - returned_id = neutronV20.find_resourceid_by_name_or_id( - self.client, 'network', _id) + with mock.patch.object(self.client.httpclient, + "request") as mock_request: + mock_request.side_effect = [(test_cli20.MyResp(200), resstr1), + (test_cli20.MyResp(200), resstr)] + returned_id = neutronV20.find_resourceid_by_name_or_id( + self.client, 'network', _id) + + self.assertEqual(2, mock_request.call_count) + mock_request.assert_has_calls([ + mock.call( + test_cli20.MyUrlComparator( + test_cli20.end_url(path, "fields=id&id=" + _id), + self.client), + 'GET', + body=None, + headers=test_cli20.ContainsKeyValue( + {'X-Auth-Token': test_cli20.TOKEN})), + mock.call( + test_cli20.MyUrlComparator( + test_cli20.end_url(path, "fields=id&name=" + _id), + self.client), + 'GET', + body=None, + headers=test_cli20.ContainsKeyValue( + {'X-Auth-Token': test_cli20.TOKEN}))]) self.assertEqual(_id, returned_id) def test_get_id_from_name(self): @@ -89,19 +92,21 @@ class CLITestNameorID(testtools.TestCase): _id = uuidutils.generate_uuid() reses = {'networks': [{'id': _id, }, ], } resstr = self.client.serialize(reses) - self.mox.StubOutWithMock(self.client.httpclient, "request") + resp = (test_cli20.MyResp(200), resstr) path = getattr(self.client, "networks_path") - self.client.httpclient.request( + with mock.patch.object(self.client.httpclient, "request", + return_value=resp) as mock_request: + returned_id = neutronV20.find_resourceid_by_name_or_id( + self.client, 'network', name) + + mock_request.assert_called_once_with( test_cli20.MyUrlComparator( test_cli20.end_url(path, "fields=id&name=" + name), self.client), 'GET', body=None, - headers=mox.ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN) - ).AndReturn((test_cli20.MyResp(200), resstr)) - self.mox.ReplayAll() - returned_id = neutronV20.find_resourceid_by_name_or_id( - self.client, 'network', name) + headers=test_cli20.ContainsKeyValue( + {'X-Auth-Token': test_cli20.TOKEN})) self.assertEqual(_id, returned_id) def test_get_id_from_name_multiple(self): @@ -109,40 +114,46 @@ class CLITestNameorID(testtools.TestCase): reses = {'networks': [{'id': uuidutils.generate_uuid()}, {'id': uuidutils.generate_uuid()}]} resstr = self.client.serialize(reses) - self.mox.StubOutWithMock(self.client.httpclient, "request") + resp = (test_cli20.MyResp(200), resstr) path = getattr(self.client, "networks_path") - self.client.httpclient.request( + with mock.patch.object(self.client.httpclient, "request", + return_value=resp) as mock_request: + exception = self.assertRaises( + exceptions.NeutronClientNoUniqueMatch, + neutronV20.find_resourceid_by_name_or_id, + self.client, 'network', name) + + mock_request.assert_called_once_with( test_cli20.MyUrlComparator( test_cli20.end_url(path, "fields=id&name=" + name), self.client), 'GET', body=None, - headers=mox.ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN) - ).AndReturn((test_cli20.MyResp(200), resstr)) - self.mox.ReplayAll() - exception = self.assertRaises(exceptions.NeutronClientNoUniqueMatch, - neutronV20.find_resourceid_by_name_or_id, - self.client, 'network', name) + headers=test_cli20.ContainsKeyValue( + {'X-Auth-Token': test_cli20.TOKEN})) self.assertIn('Multiple', exception.message) def test_get_id_from_name_notfound(self): name = 'myname' reses = {'networks': []} resstr = self.client.serialize(reses) - self.mox.StubOutWithMock(self.client.httpclient, "request") + resp = (test_cli20.MyResp(200), resstr) path = getattr(self.client, "networks_path") - self.client.httpclient.request( + with mock.patch.object(self.client.httpclient, "request", + return_value=resp) as mock_request: + exception = self.assertRaises( + exceptions.NotFound, + neutronV20.find_resourceid_by_name_or_id, + self.client, 'network', name) + + mock_request.assert_called_once_with( test_cli20.MyUrlComparator( test_cli20.end_url(path, "fields=id&name=" + name), self.client), 'GET', body=None, - headers=mox.ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN) - ).AndReturn((test_cli20.MyResp(200), resstr)) - self.mox.ReplayAll() - exception = self.assertRaises(exceptions.NotFound, - neutronV20.find_resourceid_by_name_or_id, - self.client, 'network', name) + headers=test_cli20.ContainsKeyValue( + {'X-Auth-Token': test_cli20.TOKEN})) self.assertIn('Unable to find', exception.message) self.assertEqual(404, exception.status_code) @@ -153,41 +164,44 @@ class CLITestNameorID(testtools.TestCase): reses = {'security_groups': [{'id': expect_id, 'tenant_id': project}]} resstr = self.client.serialize(reses) - self.mox.StubOutWithMock(self.client.httpclient, "request") + resp = (test_cli20.MyResp(200), resstr) path = getattr(self.client, "security_groups_path") - self.client.httpclient.request( + with mock.patch.object(self.client.httpclient, "request", + return_value=resp) as mock_request: + observed_id = neutronV20.find_resourceid_by_name_or_id( + self.client, 'security_group', name, project) + + mock_request.assert_called_once_with( test_cli20.MyUrlComparator( test_cli20.end_url(path, "fields=id&name=%s&tenant_id=%s" % (name, project)), self.client), 'GET', body=None, - headers=mox.ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN) - ).AndReturn((test_cli20.MyResp(200), resstr)) - self.mox.ReplayAll() - - observed_id = neutronV20.find_resourceid_by_name_or_id( - self.client, 'security_group', name, project) - + headers=test_cli20.ContainsKeyValue( + {'X-Auth-Token': test_cli20.TOKEN})) self.assertEqual(expect_id, observed_id) def test_get_id_from_name_multiple_with_project_not_found(self): name = 'web_server' project = uuidutils.generate_uuid() resstr_notfound = self.client.serialize({'security_groups': []}) - self.mox.StubOutWithMock(self.client.httpclient, "request") + resp = (test_cli20.MyResp(200), resstr_notfound) path = getattr(self.client, "security_groups_path") - self.client.httpclient.request( + with mock.patch.object(self.client.httpclient, "request", + return_value=resp) as mock_request: + exc = self.assertRaises(exceptions.NotFound, + neutronV20.find_resourceid_by_name_or_id, + self.client, 'security_group', name, + project) + + mock_request.assert_called_once_with( test_cli20.MyUrlComparator( test_cli20.end_url(path, "fields=id&name=%s&tenant_id=%s" % (name, project)), self.client), 'GET', body=None, - headers=mox.ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN) - ).AndReturn((test_cli20.MyResp(200), resstr_notfound)) - self.mox.ReplayAll() - exc = self.assertRaises(exceptions.NotFound, - neutronV20.find_resourceid_by_name_or_id, - self.client, 'security_group', name, project) + headers=test_cli20.ContainsKeyValue( + {'X-Auth-Token': test_cli20.TOKEN})) self.assertIn('Unable to find', exc.message) self.assertEqual(404, exc.status_code) @@ -196,29 +210,31 @@ class CLITestNameorID(testtools.TestCase): net = {'id': _id, 'name': 'test'} reses = {'networks': [net], } resstr = self.client.serialize(reses) - self.mox.StubOutWithMock(self.client.httpclient, "request") + resp = (test_cli20.MyResp(200), resstr) path = getattr(self.client, "networks_path") if id_only: query_params = "fields=id&id=%s" % _id else: query_params = "id=%s" % _id - self.client.httpclient.request( + with mock.patch.object(self.client.httpclient, "request", + return_value=resp) as mock_request: + if id_only: + returned_id = neutronV20.find_resourceid_by_id( + self.client, 'network', _id) + self.assertEqual(_id, returned_id) + else: + result = neutronV20.find_resource_by_id( + self.client, 'network', _id) + self.assertEqual(net, result) + + mock_request.assert_called_once_with( test_cli20.MyUrlComparator( test_cli20.end_url(path, query_params), self.client), 'GET', body=None, - headers=mox.ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN) - ).AndReturn((test_cli20.MyResp(200), resstr)) - self.mox.ReplayAll() - if id_only: - returned_id = neutronV20.find_resourceid_by_id( - self.client, 'network', _id) - self.assertEqual(_id, returned_id) - else: - result = neutronV20.find_resource_by_id( - self.client, 'network', _id) - self.assertEqual(net, result) + headers=test_cli20.ContainsKeyValue( + {'X-Auth-Token': test_cli20.TOKEN})) def test_get_resource_by_id(self): self._test_get_resource_by_id(id_only=False)