Add unittest to setup/host_setup_runner_test.py
Coverage for setup/host_setup_runner_test.py :
from 66 to 100%
Bug: 202820293
Test: . run_test.sh
Change-Id: I92913a62cc340316df186f27bd40b4c0149c6288
diff --git a/setup/host_setup_runner_test.py b/setup/host_setup_runner_test.py
index bc2e8ef..0e8a28d 100644
--- a/setup/host_setup_runner_test.py
+++ b/setup/host_setup_runner_test.py
@@ -16,6 +16,7 @@
import platform
import shutil
import subprocess
+import sys
import tempfile
import unittest
@@ -69,6 +70,30 @@
CuttlefishHostSetup, "_CheckLoadedModules", return_value=False)
self.assertTrue(self.CuttlefishHostSetup.ShouldRun())
+ self.Patch(platform, "system", return_value="Mac")
+ self.assertFalse(self.CuttlefishHostSetup.ShouldRun())
+
+ # pylint: disable=no-member
+ def testRun(self):
+ """Test Run."""
+ self.Patch(CuttlefishHostSetup, "_IsSupportedKvm", return_value=True)
+ self.Patch(CuttlefishHostSetup, "ShouldRun", return_value=True)
+ self.Patch(utils, "InteractWithQuestion", return_value="y")
+ self.Patch(setup_common, "CheckCmdOutput")
+ self.CuttlefishHostSetup.Run()
+ setup_common.CheckCmdOutput.assert_called()
+ setup_common.CheckCmdOutput.reset_mock()
+
+ self.Patch(utils, "InteractWithQuestion", return_value="n")
+ self.CuttlefishHostSetup.Run()
+ setup_common.CheckCmdOutput.assert_not_called()
+
+ self.Patch(CuttlefishHostSetup, "_IsSupportedKvm", return_value=False)
+ self.Patch(utils, "InteractWithQuestion")
+ self.CuttlefishHostSetup.Run()
+ utils.InteractWithQuestion.assert_not_called()
+
+
# pylint: disable=protected-access
def testIsSupportedKvm(self):
"""Test _IsSupportedKvm."""
@@ -114,11 +139,33 @@
super().setUp()
self.AvdPkgInstaller = AvdPkgInstaller()
+ def testShouldRun(self):
+ """Test ShouldRun."""
+ self.Patch(platform, "system", return_value="Linux")
+ self.assertFalse(self.AvdPkgInstaller.ShouldRun())
+
def testShouldNotRun(self):
- """Test ShoudRun should raise error in non-linux os."""
+ """Test ShouldRun should raise error in non-linux os."""
self.Patch(platform, "system", return_value="Mac")
self.assertFalse(self.AvdPkgInstaller.ShouldRun())
+ # pylint: disable=no-member
+ def testRun(self):
+ """Test Run."""
+ self.Patch(platform, "system", return_value="Linux")
+ self.AvdPkgInstaller.PACKAGES = ["pkg1", "pkg2"]
+ self.Patch(setup_common, "PackageInstalled", return_value=False)
+ self.Patch(utils, "GetUserAnswerYes", return_value=True)
+ self.Patch(setup_common, "CheckCmdOutput")
+ self.Patch(setup_common, "InstallPackage")
+ self.AvdPkgInstaller.Run()
+ setup_common.InstallPackage.assert_called()
+
+ self.Patch(utils, "GetUserAnswerYes", return_value=False)
+ self.Patch(sys, "exit")
+ self.AvdPkgInstaller.Run()
+ sys.exit.assert_called_once()
+
class CuttlefishCommonPkgInstallerTest(driver_test_lib.BaseDriverTest):
"""Test CuttlefishCommonPkgInstallerTest."""
@@ -130,23 +177,36 @@
self.CuttlefishCommonPkgInstaller = CuttlefishCommonPkgInstaller()
def testShouldRun(self):
- """Test ShoudRun."""
+ """Test ShouldRun."""
self.Patch(platform, "system", return_value="Linux")
self.Patch(setup_common, "PackageInstalled", return_value=False)
self.assertTrue(self.CuttlefishCommonPkgInstaller.ShouldRun())
+ self.Patch(setup_common, "PackageInstalled", return_value=True)
+ self.assertFalse(self.CuttlefishCommonPkgInstaller.ShouldRun())
+
+ self.Patch(platform, "system", return_value="Mac")
+ self.assertFalse(self.CuttlefishCommonPkgInstaller.ShouldRun())
+
+ # pylint: disable=no-member
@mock.patch.object(shutil, "rmtree")
@mock.patch.object(setup_common, "CheckCmdOutput")
def testRun(self, mock_cmd, mock_rmtree):
"""Test Run."""
fake_tmp_folder = "/tmp/cf-common"
self.Patch(tempfile, "mkdtemp", return_value=fake_tmp_folder)
- self.Patch(utils, "GetUserAnswerYes", return_value="y")
+ self.Patch(utils, "GetUserAnswerYes", return_value=True)
self.Patch(CuttlefishCommonPkgInstaller, "ShouldRun", return_value=True)
self.CuttlefishCommonPkgInstaller.Run()
self.assertEqual(mock_cmd.call_count, 1)
mock_rmtree.assert_called_once_with(fake_tmp_folder)
+ self.Patch(utils, "GetUserAnswerYes", return_value=False)
+ self.Patch(sys, "exit")
+ self.CuttlefishCommonPkgInstaller.Run()
+ sys.exit.assert_called_once()
+
+
class MkcertPkgInstallerTest(driver_test_lib.BaseDriverTest):
"""Test MkcertPkgInstallerTest."""
@@ -162,16 +222,34 @@
self.Patch(os.path, "exists", return_value=False)
self.assertTrue(self.MkcertPkgInstaller.ShouldRun())
+ self.Patch(os.path, "exists", return_value=True)
+ self.assertFalse(self.MkcertPkgInstaller.ShouldRun())
+
+ self.Patch(platform, "system", return_value="Mac")
+ self.Patch(os.path, "exists", return_value=False)
+ self.assertFalse(self.MkcertPkgInstaller.ShouldRun())
+
+ # pylint: disable=no-member
@mock.patch.object(setup_common, "CheckCmdOutput")
def testRun(self, mock_cmd):
"""Test Run."""
- self.Patch(utils, "GetUserAnswerYes", return_value="y")
+ self.Patch(utils, "GetUserAnswerYes", return_value=True)
self.Patch(MkcertPkgInstaller, "ShouldRun", return_value=True)
+ self.Patch(os.path, "isdir", return_value=True)
self.Patch(os, "mkdir")
self.Patch(utils, "SetExecutable")
self.Patch(utils, "CheckOutput")
self.MkcertPkgInstaller.Run()
- self.assertEqual(mock_cmd.call_count, 1)
+ mock_cmd.assert_called_once()
+
+ self.Patch(os.path, "isdir", return_value=False)
+ self.MkcertPkgInstaller.Run()
+ os.mkdir.assert_called_once()
+
+ self.Patch(utils, "GetUserAnswerYes", return_value=False)
+ self.Patch(sys, "exit")
+ self.MkcertPkgInstaller.Run()
+ sys.exit.assert_called_once()
if __name__ == "__main__":