config/sysinv/cgts-client/cgts-client/cgtsclient/tests/v1/test_invServer.py

144 lines
3.8 KiB
Python

# -*- encoding: utf-8 -*-
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright 2013 Hewlett-Packard Development Company, L.P.
#
# 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.
#
# Copyright (c) 2013-2014 Wind River Systems, Inc.
#
import copy
import testtools
from cgtsclient.tests import utils
import cgtsclient.v1.ihost
IHOST = {'id': 123,
'uuid': '66666666-7777-8888-9999-000000000000',
'hostname': 'cgtshost',
'personality': 'controller',
'mgmt_mac': '11:22:33:44:55:66',
'mgmt_ip': '192.168.24.11',
'serialid': 'sn123456',
'location': {'City': 'Ottawa'},
'boot_device': 'sda',
'rootfs_device': 'sda',
'install_output': "text",
'console': 'ttyS0,115200',
'tboot': ''}
PORT = {'id': 456,
'uuid': '11111111-2222-3333-4444-555555555555',
'ihost_id': 123,
'address': 'AA:AA:AA:AA:AA:AA',
'extra': {}}
CREATE_IHOST = copy.deepcopy(IHOST)
del CREATE_IHOST['id']
del CREATE_IHOST['uuid']
UPDATED_IHOST = copy.deepcopy(IHOST)
NEW_LOC = 'newlocOttawa'
UPDATED_IHOST['location'] = NEW_LOC
fixtures = {
'/v1/ihosts':
{
'GET': (
{},
{"ihosts": [IHOST]},
),
'POST': (
{},
CREATE_IHOST,
),
},
'/v1/ihosts/%s' % IHOST['uuid']:
{
'GET': (
{},
IHOST,
),
'DELETE': (
{},
None,
),
'PATCH': (
{},
UPDATED_IHOST,
),
},
'/v1/ihosts/%s/ports' % IHOST['uuid']:
{
'GET': (
{},
{"ports": [PORT]},
),
},
}
class ihostManagerTest(testtools.TestCase):
def setUp(self):
super(ihostManagerTest, self).setUp()
self.api = utils.FakeAPI(fixtures)
self.mgr = cgtsclient.v1.ihost.ihostManager(self.api)
def test_ihost_list(self):
ihost = self.mgr.list()
expect = [
('GET', '/v1/ihosts', {}, None),
]
self.assertEqual(self.api.calls, expect)
self.assertEqual(len(ihost), 1)
def test_ihost_show(self):
ihost = self.mgr.get(IHOST['uuid'])
expect = [
('GET', '/v1/ihosts/%s' % IHOST['uuid'], {}, None),
]
self.assertEqual(self.api.calls, expect)
self.assertEqual(ihost.uuid, IHOST['uuid'])
def test_create(self):
ihost = self.mgr.create(**CREATE_IHOST)
expect = [
('POST', '/v1/ihosts', {}, CREATE_IHOST),
]
self.assertEqual(self.api.calls, expect)
self.assertTrue(ihost)
def test_delete(self):
ihost = self.mgr.delete(ihost_id=IHOST['uuid'])
expect = [
('DELETE', '/v1/ihosts/%s' % IHOST['uuid'], {}, None),
]
self.assertEqual(self.api.calls, expect)
self.assertTrue(ihost is None)
def test_update(self):
patch = {'op': 'replace',
'value': NEW_LOC,
'path': '/location'}
ihost = self.mgr.update(ihost_id=IHOST['uuid'],
patch=patch)
expect = [
('PATCH', '/v1/ihosts/%s' % IHOST['uuid'], {}, patch),
]
self.assertEqual(self.api.calls, expect)
self.assertEqual(ihost.location, NEW_LOC)