示例#1
0
    def test_insert_image(self, mock_requests, mock_tempfile, mock_rename,
                          mock_open, mock_get_device):
        test_driver = StaticDriver.initialize(self.CONFIG)()

        device_info = {}
        mock_get_device.return_value = device_info

        mock_tempfile.mkdtemp.return_value = '/alphabet/soup'
        mock_tempfile.gettempdir.return_value = '/tmp'
        mock_tmp_file = (mock_tempfile.NamedTemporaryFile.return_value.
                         __enter__.return_value)
        mock_tmp_file.name = 'alphabet.soup'
        mock_rsp = mock_requests.get.return_value.__enter__.return_value
        mock_rsp.headers = {
            'content-disposition': 'attachment; filename="fish.iso"'
        }

        local_file = test_driver.insert_image(self.UUID,
                                              'Cd',
                                              'http://fish.it/red.iso',
                                              inserted=True,
                                              write_protected=False)

        self.assertEqual('/alphabet/soup/fish.iso', local_file)
        mock_requests.get.assert_called_once_with('http://fish.it/red.iso',
                                                  stream=True)
        mock_open.assert_called_once_with(mock.ANY, 'wb')
        mock_rename.assert_called_once_with('alphabet.soup',
                                            '/alphabet/soup/fish.iso')

        self.assertEqual('fish.iso', device_info['Image'])
        self.assertTrue(device_info['Inserted'])
        self.assertFalse(device_info['WriteProtected'])
示例#2
0
    def test_eject_image(self, mock_unlink, mock_get_device):
        test_driver = StaticDriver.initialize(self.CONFIG)()

        device_info = {'_local_file': '/tmp/fish.iso'}
        mock_get_device.return_value = device_info

        test_driver.eject_image(self.UUID, 'Cd')

        self.assertEqual('', device_info['Image'])
        self.assertEqual('', device_info['ImageName'])
        self.assertFalse(device_info['Inserted'])
        self.assertFalse(device_info['WriteProtected'])

        mock_unlink.assert_called_once_with('/tmp/fish.iso')
示例#3
0
    def test_get_device_image_info(self):
        test_driver = StaticDriver.initialize(self.CONFIG)()

        dev_info = test_driver.get_device_image_info(self.UUID, 'Cd')
        expected = ('', '', False, False)
        self.assertEqual(expected, dev_info)
示例#4
0
    def test_get_device_media_types(self):
        test_driver = StaticDriver.initialize(self.CONFIG)()

        media_types = test_driver.get_device_media_types(self.UUID, 'Cd')
        self.assertEqual(['CD', 'DVD'], media_types)
示例#5
0
    def test_get_device_name(self):
        test_driver = StaticDriver.initialize(self.CONFIG)()

        device_name = test_driver.get_device_name(self.UUID, 'Cd')
        self.assertEqual('Virtual CD', device_name)
示例#6
0
    def test_devices(self):
        test_driver = StaticDriver.initialize(self.CONFIG)()

        devices = test_driver.devices
        self.assertEqual(['Cd', 'Floppy'], sorted(devices))