¡@

Home 

OpenStack Study: test_netpartition.py

OpenStack Index

**** CubicPower OpenStack Study ****

# Copyright 2014 Alcatel-Lucent USA Inc.

#

# Licensed under the Apache License, Version 2.0 (the "License"); you may

# not use this file except in compliance with the License. You may obtain

# a copy of the License at

#

# http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT

# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the

# License for the specific language governing permissions and limitations

# under the License.

#

# @author: Ronak Shah, Nuage Networks, Alcatel-Lucent USA Inc.

import contextlib

import uuid

import webob.exc

from neutron.plugins.nuage.extensions import netpartition as netpart_ext

from neutron.tests.unit.nuage import test_nuage_plugin

from neutron.tests.unit import test_extensions

**** CubicPower OpenStack Study ****

class NetPartitionTestExtensionManager(object):

**** CubicPower OpenStack Study ****

    def get_resources(self):

        return netpart_ext.Netpartition.get_resources()

**** CubicPower OpenStack Study ****

    def get_actions(self):

        return []

**** CubicPower OpenStack Study ****

    def get_request_extensions(self):

        return []

**** CubicPower OpenStack Study ****

class NetPartitionTestCase(test_nuage_plugin.NuagePluginV2TestCase):

**** CubicPower OpenStack Study ****

    def setUp(self):

        ext_mgr = NetPartitionTestExtensionManager()

        super(NetPartitionTestCase, self).setUp()

        self.ext_api = test_extensions.setup_extensions_middleware(ext_mgr)

**** CubicPower OpenStack Study ****

    def _make_netpartition(self, fmt, name):

        data = {

            'net_partition': {

                'name': name,

                'tenant_id': uuid.uuid4()

            }

        }

        netpart_req = self.new_create_request('net-partitions', data, fmt)

        resp = netpart_req.get_response(self.ext_api)

        if resp.status_int >= webob.exc.HTTPClientError.code:

            raise webob.exc.HTTPClientError(code=resp.status_int)

        return self.deserialize(fmt, resp)

**** CubicPower OpenStack Study ****

    def _del_netpartition(self, id):

        self._delete('net-partitions', id)

    @contextlib.contextmanager

**** CubicPower OpenStack Study ****

    def netpartition(self, name='netpartition1',

                     do_delete=True,

                     fmt=None,

                     **kwargs):

        netpart = self._make_netpartition(fmt or self.fmt, name)

        yield netpart

        if do_delete:

            self._del_netpartition(netpart['net_partition']['id'])

**** CubicPower OpenStack Study ****

    def test_create_netpartition(self):

        name = 'netpart1'

        keys = [('name', name)]

        with self.netpartition(name=name) as netpart:

            for k, v in keys:

                self.assertEqual(netpart['net_partition'][k], v)

**** CubicPower OpenStack Study ****

    def test_delete_netpartition(self):

        name = 'netpart1'

        netpart = self._make_netpartition(self.fmt, name)

        req = self.new_delete_request('net-partitions',

                                      netpart['net_partition']['id'])

        res = req.get_response(self.ext_api)

        self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code)

**** CubicPower OpenStack Study ****

    def test_show_netpartition(self):

        with self.netpartition(name='netpart1') as npart:

            req = self.new_show_request('net-partitions',

                                        npart['net_partition']['id'])

            res = self.deserialize(self.fmt, req.get_response(self.ext_api))

            self.assertEqual(res['net_partition']['name'],

                             npart['net_partition']['name'])