Blame cloudinit/config/tests/test_mounts.py

Packit Service 9bfd13
# This file is part of cloud-init. See LICENSE file for license information.
Packit Service 9bfd13
from unittest import mock
Packit Service 9bfd13
Packit Service 9bfd13
import pytest
Packit Service 9bfd13
Packit Service 9bfd13
from cloudinit.config.cc_mounts import create_swapfile
Packit Service 9bfd13
Packit Service 9bfd13
Packit Service 9bfd13
M_PATH = 'cloudinit.config.cc_mounts.'
Packit Service 9bfd13
Packit Service 9bfd13
Packit Service 9bfd13
class TestCreateSwapfile:
Packit Service 9bfd13
Packit Service 9bfd13
    @pytest.mark.parametrize('fstype', ('xfs', 'btrfs', 'ext4', 'other'))
Packit Service 9bfd13
    @mock.patch(M_PATH + 'util.get_mount_info')
Packit Service 9bfd13
    @mock.patch(M_PATH + 'subp.subp')
Packit Service 9bfd13
    def test_happy_path(self, m_subp, m_get_mount_info, fstype, tmpdir):
Packit Service 9bfd13
        swap_file = tmpdir.join("swap-file")
Packit Service 9bfd13
        fname = str(swap_file)
Packit Service 9bfd13
Packit Service 9bfd13
        # Some of the calls to subp.subp should create the swap file; this
Packit Service 9bfd13
        # roughly approximates that
Packit Service 9bfd13
        m_subp.side_effect = lambda *args, **kwargs: swap_file.write('')
Packit Service 9bfd13
Packit Service 9bfd13
        m_get_mount_info.return_value = (mock.ANY, fstype)
Packit Service 9bfd13
Packit Service 9bfd13
        create_swapfile(fname, '')
Packit Service 9bfd13
        assert mock.call(['mkswap', fname]) in m_subp.call_args_list