| #!/usr/bin/python |
| |
| import unittest |
| import common |
| |
| from autotest_lib.client.common_lib import global_config |
| from autotest_lib.client.common_lib.test_utils import mock |
| from autotest_lib.server import utils |
| from autotest_lib.server.hosts import base_classes, bootloader |
| |
| |
| class test_host_class(unittest.TestCase): |
| def setUp(self): |
| self.god = mock.mock_god() |
| # stub out get_server_dir, global_config.get_config_value |
| self.god.stub_with(utils, "get_server_dir", |
| lambda: "/unittest/server") |
| self.god.stub_function(global_config.global_config, |
| "get_config_value") |
| # stub out the bootloader |
| self.real_bootloader = bootloader.Bootloader |
| bootloader.Bootloader = lambda arg: object() |
| |
| |
| def tearDown(self): |
| self.god.unstub_all() |
| bootloader.Bootloader = self.real_bootloader |
| |
| |
| def test_init(self): |
| self.god.stub_function(utils, "get_server_dir") |
| host = base_classes.Host.__new__(base_classes.Host) |
| bootloader.Bootloader = \ |
| self.god.create_mock_class_obj(self.real_bootloader, |
| "Bootloader") |
| # overwrite this attribute as it's irrelevant for these tests |
| # and may cause problems with construction of the mock |
| bootloader.Bootloader.boottool_path = None |
| # set up the recording |
| utils.get_server_dir.expect_call().and_return("/unittest/server") |
| bootloader.Bootloader.expect_new(host) |
| # run the actual test |
| host.__init__() |
| self.god.check_playback() |
| |
| |
| def test_install(self): |
| host = base_classes.Host() |
| # create a dummy installable class |
| class installable(object): |
| def install(self, host): |
| pass |
| installableObj = self.god.create_mock_class(installable, |
| "installableObj") |
| installableObj.install.expect_call(host) |
| # run the actual test |
| host.install(installableObj) |
| self.god.check_playback() |
| |
| |
| def test_get_wait_up_empty(self): |
| global_config.global_config.get_config_value.expect_call( |
| "HOSTS", "wait_up_processes", default="").and_return("") |
| |
| host = base_classes.Host() |
| self.assertEquals(host.get_wait_up_processes(), set()) |
| self.god.check_playback() |
| |
| |
| def test_get_wait_up_ignores_whitespace(self): |
| global_config.global_config.get_config_value.expect_call( |
| "HOSTS", "wait_up_processes", default="").and_return(" ") |
| |
| host = base_classes.Host() |
| self.assertEquals(host.get_wait_up_processes(), set()) |
| self.god.check_playback() |
| |
| |
| def test_get_wait_up_single_process(self): |
| global_config.global_config.get_config_value.expect_call( |
| "HOSTS", "wait_up_processes", default="").and_return("proc1") |
| |
| host = base_classes.Host() |
| self.assertEquals(host.get_wait_up_processes(), |
| set(["proc1"])) |
| self.god.check_playback() |
| |
| |
| def test_get_wait_up_multiple_process(self): |
| global_config.global_config.get_config_value.expect_call( |
| "HOSTS", "wait_up_processes", default="").and_return( |
| "proc1,proc2,proc3") |
| |
| host = base_classes.Host() |
| self.assertEquals(host.get_wait_up_processes(), |
| set(["proc1", "proc2", "proc3"])) |
| self.god.check_playback() |
| |
| |
| def test_get_wait_up_drops_duplicates(self): |
| global_config.global_config.get_config_value.expect_call( |
| "HOSTS", "wait_up_processes", default="").and_return( |
| "proc1,proc2,proc1") |
| |
| host = base_classes.Host() |
| self.assertEquals(host.get_wait_up_processes(), |
| set(["proc1", "proc2"])) |
| self.god.check_playback() |
| |
| |
| if __name__ == "__main__": |
| unittest.main() |