kiwi-el8/test/unit/filesystem_base_test.py
Marcus Schäfer e6cc5bfa09 Move from nose to pytest
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.
2016-03-14 12:23:14 +01:00

70 lines
2.2 KiB
Python

from mock import patch
import mock
from .test_helper import *
from kiwi.exceptions import *
from kiwi.filesystem.base import FileSystemBase
class TestFileSystemBase(object):
def setup(self):
provider = mock.Mock()
provider.get_device = mock.Mock(
return_value='/dev/loop0'
)
self.fsbase = FileSystemBase(provider, 'root_dir')
@raises(KiwiFileSystemSyncError)
def test_root_dir_does_not_exist(self):
fsbase = FileSystemBase(mock.Mock(), 'root_dir_not_existing')
fsbase.sync_data()
@raises(KiwiFileSystemSyncError)
def test_root_dir_not_defined(self):
fsbase = FileSystemBase(mock.Mock())
fsbase.sync_data()
@raises(NotImplementedError)
def test_create_on_device(self):
self.fsbase.create_on_device('/dev/foo')
@raises(NotImplementedError)
def test_create_on_file(self):
self.fsbase.create_on_file('myimage')
@patch('kiwi.filesystem.base.MountManager')
@patch('kiwi.filesystem.base.DataSync')
@patch('kiwi.filesystem.base.mkdtemp')
@patch('os.path.exists')
def test_sync_data(self, mock_exists, mock_mkdtemp, mock_sync, mock_mount):
mock_mkdtemp.return_value = 'tmpdir'
mock_exists.return_value = True
filesystem_mount = mock.Mock()
filesystem_mount.mountpoint = mock_mkdtemp.return_value
mock_mount.return_value = filesystem_mount
data_sync = mock.Mock()
mock_sync.return_value = data_sync
self.fsbase.sync_data(['exclude_me'])
mock_sync.assert_called_once_with('root_dir', 'tmpdir')
data_sync.sync_data.assert_called_once_with(
exclude=['exclude_me'],
options=['-a', '-H', '-X', '-A', '--one-file-system']
)
mock_mount.assert_called_once_with(
device='/dev/loop0', mountpoint='tmpdir'
)
filesystem_mount.mount.assert_called_once_with()
filesystem_mount.umount.assert_called_once_with()
def test_destructor_valid_mountpoint(self):
self.fsbase.filesystem_mount = mock.Mock()
self.fsbase.__del__()
self.fsbase.filesystem_mount.umount.assert_called_once_with()