sushy/sushy/tests/unit/resources/manager/test_virtual_media.py

86 lines
3.6 KiB
Python

# 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.
import json
import mock
import sushy
from sushy import exceptions
from sushy.resources.manager import virtual_media
from sushy.tests.unit import base
class VirtualMediaTestCase(base.TestCase):
def setUp(self):
super(VirtualMediaTestCase, self).setUp()
self.conn = mock.Mock()
with open('sushy/tests/unit/json_samples/'
'virtual_media.json') as f:
self.conn.get.return_value.json.return_value = json.load(f)
self.sys_virtual_media = virtual_media.VirtualMedia(
self.conn, '/redfish/v1/Managers/BMC/VirtualMedia/Floppy1',
redfish_version='1.0.2')
def test__parse_atrtributes(self):
self.sys_virtual_media._parse_attributes()
self.assertEqual('Virtual Removable Media',
self.sys_virtual_media.name)
self.assertEqual('Floppy1', self.sys_virtual_media.identity)
self.assertEqual('https://www.dmtf.org/freeImages/Sardine.img',
self.sys_virtual_media.image)
self.assertEqual('Sardine2.1.43.35.6a',
self.sys_virtual_media.image_name)
self.assertEqual(sushy.CONNECTED_VIA_URI,
self.sys_virtual_media.connected_via)
self.assertEqual([sushy.VIRTUAL_MEDIA_FLOPPY,
sushy.VIRTUAL_MEDIA_USBSTICK],
self.sys_virtual_media.media_types)
self.assertEqual(True, self.sys_virtual_media.inserted)
self.assertEqual(False, self.sys_virtual_media.write_protected)
def test_insert_media_none(self):
self.sys_virtual_media._actions.insert_media = None
self.assertRaisesRegex(
exceptions.MissingActionError, 'action #VirtualMedia.InsertMedia',
self.sys_virtual_media.insert_media,
"https://www.dmtf.org/freeImages/Sardine.img", True, False)
def test_insert_media(self):
self.assertFalse(self.sys_virtual_media._is_stale)
self.sys_virtual_media.insert_media(
"https://www.dmtf.org/freeImages/Sardine.img", True, False)
self.sys_virtual_media._conn.post.assert_called_once_with(
("/redfish/v1/Managers/BMC/VirtualMedia/Floppy1/Actions"
"/VirtualMedia.InsertMedia"),
data={"Image": "https://www.dmtf.org/freeImages/Sardine.img",
"Inserted": True, "WriteProtected": False}
)
self.assertTrue(self.sys_virtual_media._is_stale)
def test_eject_media_none(self):
self.sys_virtual_media._actions.eject_media = None
self.assertRaisesRegex(
exceptions.MissingActionError, 'action #VirtualMedia.EjectMedia',
self.sys_virtual_media.eject_media)
def test_eject_media(self):
self.assertFalse(self.sys_virtual_media._is_stale)
self.sys_virtual_media.eject_media()
self.sys_virtual_media._conn.post.assert_called_once_with(
("/redfish/v1/Managers/BMC/VirtualMedia/Floppy1/Actions"
"/VirtualMedia.EjectMedia"))
self.assertTrue(self.sys_virtual_media._is_stale)