summaryrefslogtreecommitdiff
path: root/tests/unittests/config/test_cc_grub_dpkg.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unittests/config/test_cc_grub_dpkg.py')
-rw-r--r--tests/unittests/config/test_cc_grub_dpkg.py121
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())