Merge "Add tests for find_resource()"
This commit is contained in:
commit
ea54a4db1b
@ -20,6 +20,7 @@ import mock
|
|||||||
|
|
||||||
from openstackclient.common import exceptions
|
from openstackclient.common import exceptions
|
||||||
from openstackclient.common import utils
|
from openstackclient.common import utils
|
||||||
|
from openstackclient.tests import fakes
|
||||||
from openstackclient.tests import utils as test_utils
|
from openstackclient.tests import utils as test_utils
|
||||||
|
|
||||||
PASSWORD = "Pa$$w0rd"
|
PASSWORD = "Pa$$w0rd"
|
||||||
@ -27,6 +28,18 @@ WASSPORD = "Wa$$p0rd"
|
|||||||
DROWSSAP = "dr0w$$aP"
|
DROWSSAP = "dr0w$$aP"
|
||||||
|
|
||||||
|
|
||||||
|
class FakeOddballResource(fakes.FakeResource):
|
||||||
|
|
||||||
|
def get(self, attr):
|
||||||
|
"""get() is needed for utils.find_resource()"""
|
||||||
|
if attr == 'id':
|
||||||
|
return self.id
|
||||||
|
elif attr == 'name':
|
||||||
|
return self.name
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
class TestUtils(test_utils.TestCase):
|
class TestUtils(test_utils.TestCase):
|
||||||
|
|
||||||
def test_get_password_good(self):
|
def test_get_password_good(self):
|
||||||
@ -242,6 +255,47 @@ class TestFindResource(test_utils.TestCase):
|
|||||||
self.manager.get.assert_called_with(self.name)
|
self.manager.get.assert_called_with(self.name)
|
||||||
self.manager.find.assert_called_with(name=self.name)
|
self.manager.find.assert_called_with(name=self.name)
|
||||||
|
|
||||||
|
def test_find_resource_silly_resource(self):
|
||||||
|
# We need a resource with no resource_class for this test, start fresh
|
||||||
|
self.manager = mock.Mock()
|
||||||
|
self.manager.get = mock.Mock(side_effect=Exception('Boom!'))
|
||||||
|
self.manager.find = mock.Mock(
|
||||||
|
side_effect=AttributeError(
|
||||||
|
"'Controller' object has no attribute 'find'",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
silly_resource = FakeOddballResource(
|
||||||
|
None,
|
||||||
|
{'id': '12345', 'name': self.name},
|
||||||
|
loaded=True,
|
||||||
|
)
|
||||||
|
self.manager.list = mock.Mock(
|
||||||
|
return_value=[silly_resource, ],
|
||||||
|
)
|
||||||
|
result = utils.find_resource(self.manager, self.name)
|
||||||
|
self.assertEqual(silly_resource, result)
|
||||||
|
self.manager.get.assert_called_with(self.name)
|
||||||
|
self.manager.find.assert_called_with(name=self.name)
|
||||||
|
|
||||||
|
def test_find_resource_silly_resource_not_found(self):
|
||||||
|
# We need a resource with no resource_class for this test, start fresh
|
||||||
|
self.manager = mock.Mock()
|
||||||
|
self.manager.get = mock.Mock(side_effect=Exception('Boom!'))
|
||||||
|
self.manager.find = mock.Mock(
|
||||||
|
side_effect=AttributeError(
|
||||||
|
"'Controller' object has no attribute 'find'",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.manager.list = mock.Mock(return_value=[])
|
||||||
|
result = self.assertRaises(exceptions.CommandError,
|
||||||
|
utils.find_resource,
|
||||||
|
self.manager,
|
||||||
|
self.name)
|
||||||
|
self.assertEqual("Could not find resource legos",
|
||||||
|
str(result))
|
||||||
|
self.manager.get.assert_called_with(self.name)
|
||||||
|
self.manager.find.assert_called_with(name=self.name)
|
||||||
|
|
||||||
def test_format_dict(self):
|
def test_format_dict(self):
|
||||||
expected = "a='b', c='d', e='f'"
|
expected = "a='b', c='d', e='f'"
|
||||||
self.assertEqual(expected,
|
self.assertEqual(expected,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user