Revision 058ee9a8

b/kamaki/clients/network/__init__.py
37 37

  
38 38
class NetworkClient(NetworkRestClient):
39 39
    """OpenStack Network API 2.0 client"""
40

  
41
    def list_networks(self):
42
        r = self.networks_get(success=200)
43
        return r.json['networks']
44

  
45
    def create_network(self, name=None, admin_state_up=None, shared=None):
46
        req = dict(network=dict(
47
            name=name or '', admin_state_up=bool(admin_state_up)))
48
        r = self.networks_post(json_data=req, shared=shared, success=201)
49
        return r.json['network']
b/kamaki/clients/network/test.py
48 48
        self.client = network.NetworkRestClient(self.url, self.token)
49 49

  
50 50
    def tearDown(self):
51
        pass
51
        del self.client
52 52

  
53 53
    def _assert(self, method_call, path, set_param=None, params=(), **kwargs):
54 54
        """Assert the REST method call is called as expected"""
......
260 260
                data=dumps(json_data), **kwargs)
261 261

  
262 262

  
263
class FakeObject(object):
264

  
265
    json = None
266

  
267

  
268
class NetworkClient(TestCase):
269

  
270
    """Set up a ComputesRest thorough test"""
271
    def setUp(self):
272
        self.url = 'http://network.example.com'
273
        self.token = 'n2tw0rk70k3n'
274
        self.client = network.NetworkClient(self.url, self.token)
275

  
276
    def tearDown(self):
277
        del self.client
278

  
279
    @patch(
280
        'kamaki.clients.network.NetworkClient.networks_get',
281
        return_value=FakeObject())
282
    def test_list_networks(self, networks_get):
283
        FakeObject.json = dict(networks='ret val')
284
        self.assertEqual(self.client.list_networks(), 'ret val')
285
        networks_get.assert_called_once_with(success=200)
286

  
287
    @patch(
288
        'kamaki.clients.network.NetworkClient.networks_post',
289
        return_value=FakeObject())
290
    def test_create_network(self, networks_post):
291
        FakeObject.json = dict(network='ret val')
292
        req = dict()
293
        for kwargs in (dict(shared=None), dict(shared=True)):
294
            for body_params in product(
295
                    (('name', None, ''), ('name', 'some name', 'some name')),
296
                    (
297
                        ('admin_state_up', None, False),
298
                        ('admin_state_up', True, True))):
299
                fullargs = dict(kwargs)
300
                for k, v, exp in body_params:
301
                    fullargs[k] = v
302
                    req[k] = exp
303
                self.assertEqual(
304
                    self.client.create_network(**fullargs), 'ret val')
305
                expargs = dict(kwargs)
306
                expargs = dict(json_data=dict(network=req), success=201)
307
                expargs.update(kwargs)
308
                self.assertEqual(networks_post.mock_calls[-1], call(**expargs))
309

  
310

  
263 311
if __name__ == '__main__':
264 312
    from sys import argv
265 313
    from kamaki.clients.test import runTestCase
266 314
    not_found = True
267
    #if not argv[1:] or argv[1] == 'NetworkClient':
268
    #    not_found = False
269
    #    runTestCase(NetworkClient, 'Network Client', argv[2:])
315
    if not argv[1:] or argv[1] == 'NetworkClient':
316
        not_found = False
317
        runTestCase(NetworkClient, 'Network Client', argv[2:])
270 318
    if not argv[1:] or argv[1] == 'NetworkRest':
271 319
        not_found = False
272 320
        runTestCase(NetworkRestClient, 'NetworkRest Client', argv[2:])
b/kamaki/clients/test.py
41 41
from kamaki.clients.utils.test import Utils
42 42
from kamaki.clients.astakos.test import AstakosClient
43 43
from kamaki.clients.compute.test import ComputeClient, ComputeRestClient
44
from kamaki.clients.network.test import NetworkRestClient
44
from kamaki.clients.network.test import NetworkClient, NetworkRestClient
45 45
from kamaki.clients.cyclades.test import CycladesClient
46 46
from kamaki.clients.cyclades.test import CycladesRestClient
47 47
from kamaki.clients.image.test import ImageClient

Also available in: Unified diff