Revision 6695edc9

b/kamaki/clients/compute/test.py
34 34
from mock import patch, call
35 35
from unittest import TestCase
36 36
from itertools import product
37
from json import dumps
37 38

  
38 39
from kamaki.clients.compute import ComputeClient, ComputeClientApi
39 40
from kamaki.clients import ClientError
......
158 159
    @patch('%s.set_header' % rest_pkg)
159 160
    @patch('%s.post' % rest_pkg, return_value=FR())
160 161
    def test_servers_post(self, post, SH):
161
        from json import dumps
162 162
        vm_id = vm_recv['server']['id']
163 163
        for args in product(
164 164
                ('', vm_id),
......
181 181
                data=json_data, success=success,
182 182
                **kwargs))
183 183

  
184
    @patch('%s.set_header' % rest_pkg)
185
    @patch('%s.put' % rest_pkg, return_value=FR())
186
    def test_servers_put(self, put, SH):
187
        vm_id = vm_recv['server']['id']
188
        for args in product(
189
                ('', vm_id),
190
                ('', 'cmd'),
191
                (None, [dict(json="data"), dict(data="json")]),
192
                (204, 504),
193
                ({}, {'k': 'v'})):
194
            (server_id, command, json_data, success, kwargs) = args
195

  
196
            self.client.servers_put(*args[:4], **kwargs)
197
            vm_str = '/%s' % server_id if server_id else ''
198
            cmd_str = '/%s' % command if command else ''
199
            if json_data:
200
                json_data = dumps(json_data)
201
                self.assertEqual(SH.mock_calls[-2:], [
202
                    call('Content-Type', 'application/json'),
203
                    call('Content-Length', len(json_data))])
204
            self.assertEqual(put.mock_calls[-1], call(
205
                '/servers%s%s' % (vm_str, cmd_str),
206
                data=json_data, success=success,
207
                **kwargs))
208

  
184 209

  
185 210
class Compute(TestCase):
186 211

  

Also available in: Unified diff