kiwi-el8/test/unit/iso_tools/init_test.py
David Cassany 998d473bc0
Refactor iso_tools factory class
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
2020-12-15 20:19:10 +01:00

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')