kiwi-el8/test/unit/builder_container_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

87 lines
2.8 KiB
Python

from mock import patch
from mock import call
import mock
import kiwi
from .test_helper import *
from kiwi.builder.container import ContainerBuilder
class TestContainerBuilder(object):
@patch('platform.machine')
def setup(self, mock_machine):
mock_machine.return_value = 'x86_64'
xml_state = mock.Mock()
xml_state.build_type.get_container = mock.Mock(
return_value='my-container'
)
xml_state.get_image_version = mock.Mock(
return_value='1.2.3'
)
xml_state.get_build_type_name = mock.Mock(
return_value='docker'
)
xml_state.xml_data.get_name = mock.Mock(
return_value='image_name'
)
self.setup = mock.Mock()
kiwi.builder.container.SystemSetup = mock.Mock(
return_value=self.setup
)
self.container = ContainerBuilder(
xml_state, 'target_dir', 'root_dir'
)
self.container.result = mock.Mock()
@patch('kiwi.builder.container.ContainerSetup')
@patch('kiwi.builder.container.ContainerImage')
def test_create(self, mock_image, mock_setup):
container_setup = mock.Mock()
mock_setup.return_value = container_setup
container_image = mock.Mock()
mock_image.return_value = container_image
self.setup.export_rpm_package_verification.return_value = '.verified'
self.setup.export_rpm_package_list.return_value = '.packages'
self.container.create()
mock_setup.assert_called_once_with(
'docker', 'root_dir', {'container_name': 'my-container'}
)
container_setup.setup.assert_called_once_with()
mock_image.assert_called_once_with(
'docker', 'root_dir'
)
container_image.create.assert_called_once_with(
'target_dir/image_name.x86_64-1.2.3.docker.tar.xz'
)
assert self.container.result.add.call_args_list == [
call(
key='container',
filename='target_dir/image_name.x86_64-1.2.3.docker.tar.xz',
use_for_bundle=True,
compress=False,
shasum=True
),
call(
key='image_packages',
filename='.packages',
use_for_bundle=True,
compress=False,
shasum=False
),
call(
key='image_verified',
filename='.verified',
use_for_bundle=True,
compress=False,
shasum=False
)
]
self.setup.export_rpm_package_verification.assert_called_once_with(
'target_dir'
)
self.setup.export_rpm_package_list.assert_called_once_with(
'target_dir'
)