nose is no longer maintained, thus we have to move to another testing system. This commit updates the tox setup and all tests to use pytest instead of nose.
56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
|
|
from mock import patch
|
|
|
|
import mock
|
|
|
|
from .test_helper import *
|
|
|
|
from kiwi.exceptions import *
|
|
from kiwi.storage.loop_device import LoopDevice
|
|
|
|
|
|
class TestLoopDevice(object):
|
|
@patch('os.path.exists')
|
|
def setup(self, mock_exists):
|
|
mock_exists.return_value = False
|
|
self.loop = LoopDevice('loop-file', 20, 4096)
|
|
|
|
@raises(KiwiLoopSetupError)
|
|
def test_loop_setup_invalid(self):
|
|
LoopDevice('loop-file-does-not-exist-and-no-size-given')
|
|
|
|
def test_get_device(self):
|
|
assert self.loop.get_device() is None
|
|
|
|
def test_is_loop(self):
|
|
assert self.loop.is_loop() is True
|
|
|
|
@patch('os.path.exists')
|
|
@patch('kiwi.storage.loop_device.Command.run')
|
|
def test_create(self, mock_command, mock_exists):
|
|
mock_exists.return_value = False
|
|
self.loop.create()
|
|
call = mock_command.call_args_list[0]
|
|
assert mock_command.call_args_list[0] == \
|
|
call([
|
|
'qemu-img', 'create', 'loop-file', '20M'
|
|
])
|
|
call = mock_command.call_args_list[1]
|
|
assert mock_command.call_args_list[1] == \
|
|
call([
|
|
'losetup', '-L', '4096', '-f', '--show', 'loop-file'
|
|
])
|
|
self.loop.node_name = None
|
|
|
|
@patch('kiwi.storage.loop_device.Command.run')
|
|
@patch('kiwi.logger.log.warning')
|
|
def test_destructor(self, mock_log_warn, mock_command):
|
|
self.loop.node_name = '/dev/loop0'
|
|
mock_command.side_effect = Exception
|
|
self.loop.__del__()
|
|
mock_command.assert_called_once_with(
|
|
['losetup', '-d', '/dev/loop0']
|
|
)
|
|
assert mock_log_warn.called
|
|
self.loop.node_name = None
|