diff options
Diffstat (limited to 'tests/unittests/distros/test__init__.py')
-rw-r--r-- | tests/unittests/distros/test__init__.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/unittests/distros/test__init__.py b/tests/unittests/distros/test__init__.py index 7c5187fd..4201c687 100644 --- a/tests/unittests/distros/test__init__.py +++ b/tests/unittests/distros/test__init__.py @@ -221,6 +221,60 @@ class TestGenericDistro(helpers.FilesystemMockingTestCase): ["pw", "usermod", "myuser", "-p", "01-Jan-1970"] ) + @mock.patch("cloudinit.distros.uses_systemd") + @mock.patch( + "cloudinit.distros.subp.which", + ) + @mock.patch( + "cloudinit.distros.subp.subp", + ) + def test_virtualization_detected(self, m_subp, m_which, m_uses_systemd): + m_uses_systemd.return_value = True + m_which.return_value = "/usr/bin/systemd-detect-virt" + m_subp.return_value = ("kvm", None) + + cls = distros.fetch("ubuntu") + d = cls("ubuntu", {}, None) + self.assertTrue(d.is_virtual) + + @mock.patch("cloudinit.distros.uses_systemd") + @mock.patch( + "cloudinit.distros.subp.subp", + ) + def test_virtualization_not_detected(self, m_subp, m_uses_systemd): + m_uses_systemd.return_value = True + m_subp.return_value = ("none", None) + + cls = distros.fetch("ubuntu") + d = cls("ubuntu", {}, None) + self.assertFalse(d.is_virtual) + + @mock.patch("cloudinit.distros.uses_systemd") + def test_virtualization_unknown(self, m_uses_systemd): + m_uses_systemd.return_value = True + + from cloudinit.subp import ProcessExecutionError + + cls = distros.fetch("ubuntu") + d = cls("ubuntu", {}, None) + with mock.patch( + "cloudinit.distros.subp.which", + return_value=None, + ): + self.assertIsNone( + d.is_virtual, + "Reflect unknown state when detection" + " binary cannot be found", + ) + + with mock.patch( + "cloudinit.distros.subp.subp", + side_effect=ProcessExecutionError(), + ): + self.assertIsNone( + d.is_virtual, "Reflect unknown state on ProcessExecutionError" + ) + class TestGetPackageMirrors: def return_first(self, mlist): |