nova/nova/tests/functional/v3/test_baremetal_nodes.py
ghanshyam c6f1db668c Merge baremetal_nodes func tests between V2 and V2.1
Currently v2 and v2.1 have separate functional tests and their
corresponding sample files. As v2 and v2.1 are supposed to be identical,
there is overhead to maintain two set of functional tests and sample files.
We can have one set of tests which can run for both v2 and v2.1.

This commit merges baremetal_nodes functional tests.

Change-Id: Ifb42121727ae8ad1eebbdff3e52f2af816ccae28
2015-04-01 14:53:11 +09:00

90 lines
3.3 KiB
Python

# Copyright 2015 IBM Corp.
#
# 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.
import mock
from oslo_config import cfg
from nova.tests.functional.v3 import api_sample_base
CONF = cfg.CONF
CONF.import_opt('osapi_compute_extension',
'nova.api.openstack.compute.extensions')
class FakeNode(object):
def __init__(self, uuid='058d27fa-241b-445a-a386-08c04f96db43'):
self.uuid = uuid
self.provision_state = 'active'
self.properties = {'cpus': '2',
'memory_mb': '1024',
'local_gb': '10'}
self.instance_uuid = '1ea4e53e-149a-4f02-9515-590c9fb2315a'
class NodeManager(object):
def list(self, detail=False):
return [FakeNode(), FakeNode('e2025409-f3ce-4d6a-9788-c565cf3b1b1c')]
def get(self, id):
return FakeNode(id)
def list_ports(self, id):
return []
class fake_client(object):
node = NodeManager()
class BareMetalNodesSampleJsonTest(api_sample_base.ApiSampleTestBaseV3):
ADMIN_API = True
extension_name = "os-baremetal-nodes"
# TODO(gmann): Overriding '_api_version' till all functional tests
# are merged between v2 and v2.1. After that base class variable
# itself can be changed to 'v2'
_api_version = 'v2'
def _get_flags(self):
f = super(BareMetalNodesSampleJsonTest, self)._get_flags()
f['osapi_compute_extension'] = CONF.osapi_compute_extension[:]
f['osapi_compute_extension'].append('nova.api.openstack.compute.'
'contrib.baremetal_nodes.Baremetal_nodes')
return f
@mock.patch("nova.api.openstack.compute.plugins.v3.baremetal_nodes"
"._get_ironic_client")
@mock.patch("nova.api.openstack.compute.contrib.baremetal_nodes"
"._get_ironic_client")
def test_baremetal_nodes_list(self, mock_get_irc, v2_1_mock_get_irc):
mock_get_irc.return_value = fake_client()
v2_1_mock_get_irc.return_value = fake_client()
response = self._do_get('os-baremetal-nodes')
subs = self._get_regexes()
self._verify_response('baremetal-node-list-resp', subs, response, 200)
@mock.patch("nova.api.openstack.compute.plugins.v3.baremetal_nodes"
"._get_ironic_client")
@mock.patch("nova.api.openstack.compute.contrib.baremetal_nodes"
"._get_ironic_client")
def test_baremetal_nodes_get(self, mock_get_irc, v2_1_mock_get_irc):
mock_get_irc.return_value = fake_client()
v2_1_mock_get_irc.return_value = fake_client()
response = self._do_get('os-baremetal-nodes/'
'058d27fa-241b-445a-a386-08c04f96db43')
subs = self._get_regexes()
self._verify_response('baremetal-node-get-resp', subs, response, 200)