This commit refactors the IsoTools class and turns it into a proper factory class and also includes type hints to facilitate it's use from an API POV. Related to #1498
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
from pytest import raises
|
|
from mock import patch
|
|
import mock
|
|
|
|
from kiwi.iso_tools import IsoTools
|
|
from kiwi.exceptions import KiwiIsoToolError
|
|
|
|
|
|
class TestIsoTools:
|
|
def setup(self):
|
|
self.runtime_config = mock.Mock()
|
|
self.runtime_config.get_iso_tool_category = mock.Mock()
|
|
|
|
@patch('kiwi.iso_tools.cdrtools.IsoToolsCdrTools')
|
|
@patch('kiwi.iso_tools.RuntimeConfig')
|
|
def test_iso_tools_cdrtools(
|
|
self, mock_RuntimeConfig, mock_IsoToolsCdrTools
|
|
):
|
|
self.runtime_config.get_iso_tool_category.return_value = 'cdrtools'
|
|
mock_RuntimeConfig.return_value = self.runtime_config
|
|
IsoTools.new('root-dir')
|
|
mock_IsoToolsCdrTools.assert_called_once_with('root-dir')
|
|
|
|
@patch('kiwi.iso_tools.xorriso.IsoToolsXorrIso')
|
|
@patch('kiwi.iso_tools.RuntimeConfig')
|
|
def test_iso_tools_xorriso(
|
|
self, mock_RuntimeConfig, mock_IsoToolsXorrIso
|
|
):
|
|
self.runtime_config.get_iso_tool_category.return_value = 'xorriso'
|
|
mock_RuntimeConfig.return_value = self.runtime_config
|
|
IsoTools.new('root-dir')
|
|
mock_IsoToolsXorrIso.assert_called_once_with('root-dir')
|
|
|
|
@patch('kiwi.iso_tools.RuntimeConfig')
|
|
def test_iso_tools_unsupported(self, mock_RuntimeConfig):
|
|
self.runtime_config.get_iso_tool_category.return_value = 'foo'
|
|
mock_RuntimeConfig.return_value = self.runtime_config
|
|
with raises(KiwiIsoToolError):
|
|
IsoTools.new('root_dir')
|