97 lines
3.2 KiB
Python
97 lines
3.2 KiB
Python
# Copyright 2019 Red Hat, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# 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.
|
|
from unittest import mock
|
|
import uuid
|
|
|
|
from oslotest import base
|
|
|
|
from sushy_tools.emulator.resources.chassis import StaticDriver
|
|
from sushy_tools import error
|
|
|
|
|
|
class StaticDriverTestCase(base.BaseTestCase):
|
|
|
|
def setUp(self):
|
|
self.chassis = [
|
|
{
|
|
"Id": "Chassis",
|
|
"Name": "Tinfoil Chassis",
|
|
"UUID": "48295861-2522-3561-6729-621118518810",
|
|
"Contains": ['48295861-2522-3561-6729-621118518810'],
|
|
"ContainedBy": 'ZZZ-YYY-XXX'
|
|
}
|
|
]
|
|
|
|
self.identity = self.chassis[0]['Id']
|
|
self.uuid = self.chassis[0]['UUID']
|
|
self.name = self.chassis[0]['Name']
|
|
|
|
self.sys_name = 'server01'
|
|
self.sys_uuid = self.uuid.replace('8', '1')
|
|
|
|
self.mgr_name = 'manager01'
|
|
self.mgr_uuid = self.uuid.replace('8', '2')
|
|
|
|
self.test_driver = StaticDriver(
|
|
{'SUSHY_EMULATOR_CHASSIS': self.chassis}, mock.MagicMock())
|
|
|
|
systems_mock = mock.MagicMock()
|
|
systems_mock.name.return_value = self.sys_name
|
|
systems_mock.uuid.return_value = self.sys_uuid
|
|
systems_mock.systems = [self.sys_name]
|
|
|
|
self.test_driver.systems = systems_mock
|
|
|
|
managers_mock = mock.MagicMock()
|
|
managers_mock.name.return_value = self.mgr_name
|
|
managers_mock.uuid.return_value = self.mgr_uuid
|
|
managers_mock.managers = [self.mgr_name]
|
|
|
|
self.test_driver.managers = managers_mock
|
|
|
|
super(StaticDriverTestCase, self).setUp()
|
|
|
|
def test__get_chassis_by_id(self):
|
|
self.assertRaises(
|
|
error.AliasAccessError, self.test_driver._get_chassis,
|
|
self.identity)
|
|
|
|
def test__get_chassis_by_name(self):
|
|
self.assertRaises(
|
|
error.AliasAccessError, self.test_driver._get_chassis, self.name)
|
|
|
|
def test__get_chassis_by_uuid(self):
|
|
chassis_uuid = uuid.UUID(self.uuid)
|
|
chassis = self.test_driver._get_chassis(str(chassis_uuid))
|
|
self.assertEqual(
|
|
self.chassis[0], chassis)
|
|
|
|
def test_uuid_ok(self):
|
|
self.assertEqual(self.uuid, self.test_driver.uuid(self.uuid))
|
|
|
|
def test_uuid_fail(self):
|
|
self.assertRaises(error.FishyError, self.test_driver.uuid, 'xxx')
|
|
|
|
def test_name_ok(self):
|
|
self.assertRaises(error.AliasAccessError,
|
|
self.test_driver.name, self.name)
|
|
|
|
def test_name_fail(self):
|
|
self.assertRaises(error.FishyError, self.test_driver.name, 'xxx')
|
|
|
|
def test_chassis(self):
|
|
chassis = self.test_driver.chassis
|
|
self.assertEqual([self.uuid], chassis)
|