def test_main_raises_on_zypp_bind(self, mock_os_listdir, mock_shutil_copy, mock_os_path_exists, mock_Fstab, mock_Command_run, mock_logger_setup, mock_update_regionsrv_setup): mock_os_listdir.return_value = None mock_os_path_exists.return_value = True mock_Command_run.side_effect = [ MagicMock(), MagicMock(), MagicMock(), MagicMock(), Exception ] with raises(DistMigrationZypperMetaDataException): main()
def test_main(self, mock_os_listdir, mock_shutil_copy, mock_os_path_exists, mock_Path, mock_Fstab, mock_Command_run, mock_info): fstab = Mock() mock_Fstab.return_value = fstab mock_os_listdir.return_value = ['foo', 'bar'] mock_os_path_exists.return_value = True main() assert mock_shutil_copy.call_args_list == [ call('/system-root/etc/SUSEConnect', '/etc/SUSEConnect'), call('/system-root/etc/regionserverclnt.cfg', '/etc/regionserverclnt.cfg'), call('/system-root/etc/hosts', '/etc/hosts'), call('/system-root/usr/share/pki/trust/anchors/foo', '/usr/share/pki/trust/anchors/'), call('/system-root/usr/share/pki/trust/anchors/bar', '/usr/share/pki/trust/anchors/') ] mock_Path.create.assert_called_once_with('/var/lib/cloudregister') assert mock_Command_run.call_args_list == [ call(['update-ca-certificates']), call(['ip', 'a'], raise_on_error=False), call(['ip', 'r'], raise_on_error=False), call(['cat', '/etc/resolv.conf'], raise_on_error=False), call(['cat', '/proc/net/bonding/bond*'], raise_on_error=False), call(['mount', '--bind', '/system-root/etc/zypp', '/etc/zypp']), call([ 'mount', '--bind', '/system-root/usr/lib/zypp/plugins', '/usr/lib/zypp/plugins' ]), call([ 'mount', '--bind', '/system-root/var/lib/cloudregister', '/var/lib/cloudregister' ]), call(['mount', '-t', 'devtmpfs', 'devtmpfs', '/system-root/dev']), call(['mount', '-t', 'proc', 'proc', '/system-root/proc']), call(['mount', '-t', 'sysfs', 'sysfs', '/system-root/sys']) ] fstab.read.assert_called_once_with('/etc/system-root.fstab') assert fstab.add_entry.call_args_list == [ call('/system-root/etc/zypp', '/etc/zypp'), call('/system-root/usr/lib/zypp/plugins', '/usr/lib/zypp/plugins'), call('devtmpfs', '/system-root/dev'), call('/proc', '/system-root/proc'), call('sysfs', '/system-root/sys') ] fstab.export.assert_called_once_with('/etc/system-root.fstab') assert mock_info.called mock_Command_run.assert_any_call(['cat', '/proc/net/bonding/bond*'], raise_on_error=False)
def test_main_raises_on_zypp_bind(self, mock_os_listdir, mock_shutil_copy, mock_os_path_exists, mock_Fstab, mock_Command_run, mock_info, mock_error): mock_os_listdir.return_value = None mock_os_path_exists.return_value = True mock_Command_run.side_effect = [ MagicMock(), MagicMock(), MagicMock(), MagicMock(), Exception ] with raises(DistMigrationZypperMetaDataException): main() assert mock_info.called assert mock_error.called
def test_main_no_registered_instance( self, mock_os_listdir, mock_shutil_copy, mock_os_path_exists, mock_Path, mock_Fstab, mock_Command_run, mock_logger_setup, mock_MigrationConfig, mock_update_regionsrv_setup, mock_is_registered): migration_config = Mock() migration_config.is_zypper_migration_plugin_requested.return_value = \ True mock_MigrationConfig.return_value = migration_config fstab = Mock() mock_Fstab.return_value = fstab mock_os_listdir.return_value = ['foo', 'bar'] mock_os_path_exists.return_value = True mock_is_registered.return_value = False with raises(DistMigrationZypperMetaDataException): main()
def test_main_raises_and_umount_file_system( self, mock_os_listdir, mock_shutil_copy, mock_Command_run, mock_os_path_exists, mock_Fstab, mock_logger_setup, mock_update_regionsrv_setup ): fstab = Fstab() fstab_mock = Mock() fstab_mock.read.return_value = fstab.read('../data/bind-mounted.fstab') fstab_mock.get_devices.return_value = fstab.get_devices() fstab_mock.export.side_effect = Exception mock_Fstab.return_value = fstab_mock mock_os_path_exists.return_value = True with raises(DistMigrationZypperMetaDataException): main() assert mock_Command_run.call_args_list == [ call(['ip', 'a'], raise_on_error=False), call(['ip', 'r'], raise_on_error=False), call(['cat', '/etc/resolv.conf'], raise_on_error=False), call(['cat', '/proc/net/bonding/bond*'], raise_on_error=False), call(['umount', '/system-root/sys'], raise_on_error=False), call(['umount', '/system-root/proc'], raise_on_error=False), call(['umount', '/system-root/dev'], raise_on_error=False) ]
def test_main( self, mock_readlink, mock_os_path_islink, mock_path_isdir, mock_os_listdir, mock_shutil_copy, mock_Path, mock_MigrationConfig, mock_is_registered, mock_is_file, mock_Command_run, mock_os_path_exists, mock_Fstab, mock_logger_setup, mock_update_regionsrv_setup ): mock_readlink.return_value = 'link_target' mock_path_isdir.return_value = True migration_config = Mock() migration_config.is_zypper_migration_plugin_requested.return_value = \ True mock_MigrationConfig.return_value = migration_config fstab = Mock() mock_Fstab.return_value = fstab mock_os_listdir.return_value = ['foo', 'bar'] mock_os_path_islink.side_effect = [ False, False, False, True ] mock_os_path_exists.side_effect = [ True, True, True, True, False, True, True ] mock_is_registered.return_value = True mock_Command_run.side_effect = [ MagicMock(), MagicMock(), Exception('no zypper log'), MagicMock(), MagicMock(), MagicMock(), MagicMock(), MagicMock(), MagicMock(), MagicMock(), MagicMock() ] mock_shutil_copy.side_effect = [ MagicMock(), MagicMock(), MagicMock(), MagicMock(), MagicMock(), MagicMock(), FileNotFoundError('cert copy failed') ] mock_is_file.return_value = True with patch('builtins.open', create=True): main() assert mock_shutil_copy.call_args_list == [ call('/system-root/etc/SUSEConnect', '/etc/SUSEConnect'), call( '/system-root/etc/regionserverclnt.cfg', '/etc/regionserverclnt.cfg' ), call('/system-root/etc/hosts', '/etc/hosts'), call( '/system-root/usr/share/pki/trust/anchors/foo', '/usr/share/pki/trust/anchors/' ), call( '/system-root/usr/share/pki/trust/anchors/bar', '/usr/share/pki/trust/anchors/' ), call( '/system-root/etc/pki/trust/anchors/foo', '/etc/pki/trust/anchors/' ), call( '/system-root/link_target', '/etc/pki/trust/anchors/' ) ] mock_Path.call_args_list == [ call(['/var/lib/cloudregister']), call(['/usr/share/pki/trust/anchors']), call(['/etc/pki/trust/anchors']) ] assert mock_Command_run.call_args_list == [ call( ['update-ca-certificates'] ), call( ['update-ca-certificates'] ), call( [ 'mount', '--bind', '/system-root/var/log/zypper.log', '/var/log/zypper.log' ] ), call( ['ip', 'a'], raise_on_error=False ), call( ['ip', 'r'], raise_on_error=False ), call( ['cat', '/etc/resolv.conf'], raise_on_error=False ), call( ['cat', '/proc/net/bonding/bond*'], raise_on_error=False ), call( ['mount', '--bind', '/system-root/etc/zypp', '/etc/zypp'] ), call( [ 'mount', '--bind', '/system-root/usr/lib/zypp/plugins/services', '/usr/lib/zypp/plugins/services' ] ), call( [ 'mount', '--bind', '/system-root/var/lib/cloudregister', '/var/lib/cloudregister' ] ), call( ['/usr/sbin/updatesmtcache'] ) ] fstab.read.assert_called_once_with( '/etc/system-root.fstab' ) assert fstab.add_entry.call_args_list == [ call( '/system-root/etc/zypp', '/etc/zypp' ), call( '/system-root/usr/lib/zypp/plugins/services', '/usr/lib/zypp/plugins/services' ) ] fstab.export.assert_called_once_with( '/etc/system-root.fstab' ) mock_Command_run.assert_any_call( ['cat', '/proc/net/bonding/bond*'], raise_on_error=False )