diff options
Diffstat (limited to 'tests/unittests/config/test_cc_grub_dpkg.py')
-rw-r--r-- | tests/unittests/config/test_cc_grub_dpkg.py | 121 |
1 files changed, 66 insertions, 55 deletions
diff --git a/tests/unittests/config/test_cc_grub_dpkg.py b/tests/unittests/config/test_cc_grub_dpkg.py index 99c05bb5..5151a7b5 100644 --- a/tests/unittests/config/test_cc_grub_dpkg.py +++ b/tests/unittests/config/test_cc_grub_dpkg.py @@ -1,11 +1,12 @@ # This file is part of cloud-init. See LICENSE file for license information. +from logging import Logger +from unittest import mock + import pytest -from unittest import mock -from logging import Logger -from cloudinit.subp import ProcessExecutionError from cloudinit.config.cc_grub_dpkg import fetch_idevs, handle +from cloudinit.subp import ProcessExecutionError class TestFetchIdevs: @@ -21,73 +22,78 @@ class TestFetchIdevs: ProcessExecutionError(reason=FileNotFoundError()), False, mock.call("'grub-probe' not found in $PATH"), - '', - '', + "", + "", ), # Inside a container, grub installed ( ProcessExecutionError(stderr="failed to get canonical path"), False, mock.call("grub-probe 'failed to get canonical path'"), - '', - '', + "", + "", ), # KVM Instance ( - ['/dev/vda'], + ["/dev/vda"], True, None, ( - '/dev/disk/by-path/pci-0000:00:00.0 ', - '/dev/disk/by-path/virtio-pci-0000:00:00.0 ' + "/dev/disk/by-path/pci-0000:00:00.0 ", + "/dev/disk/by-path/virtio-pci-0000:00:00.0 ", ), - '/dev/vda', + "/dev/vda", ), # Xen Instance ( - ['/dev/xvda'], + ["/dev/xvda"], True, None, - '', - '/dev/xvda', + "", + "/dev/xvda", ), # NVMe Hardware Instance ( - ['/dev/nvme1n1'], + ["/dev/nvme1n1"], True, None, ( - '/dev/disk/by-id/nvme-Company_hash000 ', - '/dev/disk/by-id/nvme-nvme.000-000-000-000-000 ', - '/dev/disk/by-path/pci-0000:00:00.0-nvme-0 ' + "/dev/disk/by-id/nvme-Company_hash000 ", + "/dev/disk/by-id/nvme-nvme.000-000-000-000-000 ", + "/dev/disk/by-path/pci-0000:00:00.0-nvme-0 ", ), - '/dev/disk/by-id/nvme-Company_hash000', + "/dev/disk/by-id/nvme-Company_hash000", ), # SCSI Hardware Instance ( - ['/dev/sda'], + ["/dev/sda"], True, None, ( - '/dev/disk/by-id/company-user-1 ', - '/dev/disk/by-id/scsi-0Company_user-1 ', - '/dev/disk/by-path/pci-0000:00:00.0-scsi-0:0:0:0 ' + "/dev/disk/by-id/company-user-1 ", + "/dev/disk/by-id/scsi-0Company_user-1 ", + "/dev/disk/by-path/pci-0000:00:00.0-scsi-0:0:0:0 ", ), - '/dev/disk/by-id/company-user-1', + "/dev/disk/by-id/company-user-1", ), ], ) @mock.patch("cloudinit.config.cc_grub_dpkg.util.logexc") @mock.patch("cloudinit.config.cc_grub_dpkg.os.path.exists") @mock.patch("cloudinit.config.cc_grub_dpkg.subp.subp") - def test_fetch_idevs(self, m_subp, m_exists, m_logexc, grub_output, - path_exists, expected_log_call, udevadm_output, - expected_idevs): + def test_fetch_idevs( + self, + m_subp, + m_exists, + m_logexc, + grub_output, + path_exists, + expected_log_call, + udevadm_output, + expected_idevs, + ): """Tests outputs from grub-probe and udevadm info against grub-dpkg""" - m_subp.side_effect = [ - grub_output, - ["".join(udevadm_output)] - ] + m_subp.side_effect = [grub_output, ["".join(udevadm_output)]] m_exists.return_value = path_exists log = mock.Mock(spec=Logger) idevs = fetch_idevs(log) @@ -106,67 +112,72 @@ class TestHandle: # No configuration None, None, - '/dev/disk/by-id/nvme-Company_hash000', + "/dev/disk/by-id/nvme-Company_hash000", ( "Setting grub debconf-set-selections with ", - "'/dev/disk/by-id/nvme-Company_hash000','false'" + "'/dev/disk/by-id/nvme-Company_hash000','false'", ), ), ( # idevs set, idevs_empty unset - '/dev/sda', + "/dev/sda", None, - '/dev/sda', + "/dev/sda", ( "Setting grub debconf-set-selections with ", - "'/dev/sda','false'" + "'/dev/sda','false'", ), ), ( # idevs unset, idevs_empty set None, - 'true', - '/dev/xvda', + "true", + "/dev/xvda", ( "Setting grub debconf-set-selections with ", - "'/dev/xvda','true'" + "'/dev/xvda','true'", ), ), ( # idevs set, idevs_empty set - '/dev/vda', - 'false', - '/dev/disk/by-id/company-user-1', + "/dev/vda", + "false", + "/dev/disk/by-id/company-user-1", ( "Setting grub debconf-set-selections with ", - "'/dev/vda','false'" + "'/dev/vda','false'", ), ), ( # idevs set, idevs_empty set # Respect what the user defines, even if its logically wrong - '/dev/nvme0n1', - 'true', - '', + "/dev/nvme0n1", + "true", + "", ( "Setting grub debconf-set-selections with ", - "'/dev/nvme0n1','true'" + "'/dev/nvme0n1','true'", ), - ) + ), ], ) @mock.patch("cloudinit.config.cc_grub_dpkg.fetch_idevs") @mock.patch("cloudinit.config.cc_grub_dpkg.util.get_cfg_option_str") @mock.patch("cloudinit.config.cc_grub_dpkg.util.logexc") @mock.patch("cloudinit.config.cc_grub_dpkg.subp.subp") - def test_handle(self, m_subp, m_logexc, m_get_cfg_str, m_fetch_idevs, - cfg_idevs, cfg_idevs_empty, fetch_idevs_output, - expected_log_output): + def test_handle( + self, + m_subp, + m_logexc, + m_get_cfg_str, + m_fetch_idevs, + cfg_idevs, + cfg_idevs_empty, + fetch_idevs_output, + expected_log_output, + ): """Test setting of correct debconf database entries""" - m_get_cfg_str.side_effect = [ - cfg_idevs, - cfg_idevs_empty - ] + m_get_cfg_str.side_effect = [cfg_idevs, cfg_idevs_empty] m_fetch_idevs.return_value = fetch_idevs_output log = mock.Mock(spec=Logger) handle(mock.Mock(), mock.Mock(), mock.Mock(), log, mock.Mock()) |