12
12
# License for the specific language governing permissions and limitations
13
13
# under the License.
15
from heatclient.v1.events import EventManager
15
from heatclient.common import utils
16
from heatclient.v1 import events
17
from mock import MagicMock
18
from mock import patch
19
19
from mox3 import mox
31
31
def test_list_event(self):
32
32
stack_id = 'teststack',
33
33
resource_name = 'testresource'
34
manager = EventManager(None)
34
manager = events.EventManager(None)
35
35
self.m.StubOutWithMock(manager, '_resolve_stack_id')
36
36
manager._resolve_stack_id(stack_id).AndReturn('teststack/abcd1234')
38
manager._list = MagicMock()
38
manager._list = mock.MagicMock()
39
39
manager.list(stack_id, resource_name)
40
40
# Make sure url is correct.
41
41
manager._list.assert_called_once_with('/stacks/teststack%2Fabcd1234/'
45
45
def test_list_event_with_unicode_resource_name(self):
46
46
stack_id = 'teststack',
47
47
resource_name = u'\u5de5\u4f5c'
48
manager = EventManager(None)
48
manager = events.EventManager(None)
49
49
self.m.StubOutWithMock(manager, '_resolve_stack_id')
50
50
manager._resolve_stack_id(stack_id).AndReturn('teststack/abcd1234')
52
manager._list = MagicMock()
52
manager._list = mock.MagicMock()
53
53
manager.list(stack_id, resource_name)
54
54
# Make sure url is correct.
55
55
manager._list.assert_called_once_with('/stacks/teststack%2Fabcd1234/'
59
59
def test_list_event_with_none_resource_name(self):
60
60
stack_id = 'teststack',
61
manager = EventManager(None)
62
manager._list = MagicMock()
61
manager = events.EventManager(None)
62
manager._list = mock.MagicMock()
63
63
manager.list(stack_id)
64
64
# Make sure url is correct.
65
65
manager._list.assert_called_once_with('/stacks/teststack/'
74
74
'resource_action': 'CREATE',
75
75
'resource_status': 'COMPLETE'
77
manager = EventManager(None)
77
manager = events.EventManager(None)
78
78
self.m.StubOutWithMock(manager, '_resolve_stack_id')
79
79
manager._resolve_stack_id(stack_id).AndReturn('teststack/abcd1234')
81
manager._list = MagicMock()
81
manager._list = mock.MagicMock()
82
82
manager.list(stack_id, resource_name, **kwargs)
83
83
# Make sure url is correct.
84
manager._list.assert_called_once_with('/stacks/teststack%2Fabcd1234/'
85
'resources/testresource/events'
86
'?marker=6d6935f4-0ae5&limit=2'
87
'&resource_action=CREATE&'
88
'resource_status=COMPLETE',
84
self.assertEqual(1, manager._list.call_count)
85
args = manager._list.call_args
86
self.assertEqual(2, len(args[0]))
88
self.assertEqual("events", param)
89
base_url, query_params = utils.parse_query_url(url)
90
expected_base_url = ('/stacks/teststack%2Fabcd1234/'
91
'resources/testresource/events')
92
self.assertEqual(expected_base_url, base_url)
93
expected_query_dict = {'marker': ['6d6935f4-0ae5'],
95
'resource_action': ['CREATE'],
96
'resource_status': ['COMPLETE']}
97
self.assertEqual(expected_query_dict, query_params)
91
99
def test_get_event(self):
92
100
fields = {'stack_id': 'teststack',
103
111
assert args == expect
104
112
return {}, {'event': []}
106
manager = EventManager(FakeAPI())
107
with patch('heatclient.v1.events.Event'):
114
manager = events.EventManager(FakeAPI())
115
with mock.patch('heatclient.v1.events.Event'):
108
116
self.m.StubOutWithMock(manager, '_resolve_stack_id')
109
117
manager._resolve_stack_id('teststack').AndReturn(
110
118
'teststack/abcd1234')
126
134
assert args == expect
127
135
return {}, {'event': []}
129
manager = EventManager(FakeAPI())
130
with patch('heatclient.v1.events.Event'):
137
manager = events.EventManager(FakeAPI())
138
with mock.patch('heatclient.v1.events.Event'):
131
139
self.m.StubOutWithMock(manager, '_resolve_stack_id')
132
140
manager._resolve_stack_id('teststack').AndReturn(
133
141
'teststack/abcd1234')