1*9c5db199SXin Li#!/usr/bin/python3 2*9c5db199SXin Li# pylint: disable=missing-docstring 3*9c5db199SXin Li 4*9c5db199SXin Liimport unittest 5*9c5db199SXin Liimport common 6*9c5db199SXin Li 7*9c5db199SXin Lifrom autotest_lib.client.common_lib import global_config 8*9c5db199SXin Lifrom autotest_lib.client.common_lib.test_utils import mock 9*9c5db199SXin Lifrom autotest_lib.server import utils 10*9c5db199SXin Lifrom autotest_lib.server.hosts import base_classes 11*9c5db199SXin Li 12*9c5db199SXin Li 13*9c5db199SXin Liclass test_host_class(unittest.TestCase): 14*9c5db199SXin Li def setUp(self): 15*9c5db199SXin Li self.god = mock.mock_god() 16*9c5db199SXin Li # stub out get_server_dir, global_config.get_config_value 17*9c5db199SXin Li self.god.stub_with(utils, "get_server_dir", 18*9c5db199SXin Li lambda: "/unittest/server") 19*9c5db199SXin Li self.god.stub_function(global_config.global_config, 20*9c5db199SXin Li "get_config_value") 21*9c5db199SXin Li 22*9c5db199SXin Li 23*9c5db199SXin Li def tearDown(self): 24*9c5db199SXin Li self.god.unstub_all() 25*9c5db199SXin Li 26*9c5db199SXin Li 27*9c5db199SXin Li def test_init(self): 28*9c5db199SXin Li self.god.stub_function(utils, "get_server_dir") 29*9c5db199SXin Li host = base_classes.Host.__new__(base_classes.Host) 30*9c5db199SXin Li # set up the recording 31*9c5db199SXin Li utils.get_server_dir.expect_call().and_return("/unittest/server") 32*9c5db199SXin Li # run the actual test 33*9c5db199SXin Li host.__init__() 34*9c5db199SXin Li self.god.check_playback() 35*9c5db199SXin Li 36*9c5db199SXin Li 37*9c5db199SXin Li def test_install(self): 38*9c5db199SXin Li host = base_classes.Host() 39*9c5db199SXin Li # create a stub installable class 40*9c5db199SXin Li class installable(object): 41*9c5db199SXin Li def install(self, host): 42*9c5db199SXin Li pass 43*9c5db199SXin Li installableObj = self.god.create_mock_class(installable, 44*9c5db199SXin Li "installableObj") 45*9c5db199SXin Li installableObj.install.expect_call(host) 46*9c5db199SXin Li # run the actual test 47*9c5db199SXin Li host.install(installableObj) 48*9c5db199SXin Li self.god.check_playback() 49*9c5db199SXin Li 50*9c5db199SXin Li 51*9c5db199SXin Li def test_get_wait_up_empty(self): 52*9c5db199SXin Li global_config.global_config.get_config_value.expect_call( 53*9c5db199SXin Li "HOSTS", "wait_up_processes", default="").and_return("") 54*9c5db199SXin Li 55*9c5db199SXin Li host = base_classes.Host() 56*9c5db199SXin Li self.assertEquals(host.get_wait_up_processes(), set()) 57*9c5db199SXin Li self.god.check_playback() 58*9c5db199SXin Li 59*9c5db199SXin Li 60*9c5db199SXin Li def test_get_wait_up_ignores_whitespace(self): 61*9c5db199SXin Li global_config.global_config.get_config_value.expect_call( 62*9c5db199SXin Li "HOSTS", "wait_up_processes", default="").and_return(" ") 63*9c5db199SXin Li 64*9c5db199SXin Li host = base_classes.Host() 65*9c5db199SXin Li self.assertEquals(host.get_wait_up_processes(), set()) 66*9c5db199SXin Li self.god.check_playback() 67*9c5db199SXin Li 68*9c5db199SXin Li 69*9c5db199SXin Li def test_get_wait_up_single_process(self): 70*9c5db199SXin Li global_config.global_config.get_config_value.expect_call( 71*9c5db199SXin Li "HOSTS", "wait_up_processes", default="").and_return("proc1") 72*9c5db199SXin Li 73*9c5db199SXin Li host = base_classes.Host() 74*9c5db199SXin Li self.assertEquals(host.get_wait_up_processes(), 75*9c5db199SXin Li set(["proc1"])) 76*9c5db199SXin Li self.god.check_playback() 77*9c5db199SXin Li 78*9c5db199SXin Li 79*9c5db199SXin Li def test_get_wait_up_multiple_process(self): 80*9c5db199SXin Li global_config.global_config.get_config_value.expect_call( 81*9c5db199SXin Li "HOSTS", "wait_up_processes", default="").and_return( 82*9c5db199SXin Li "proc1,proc2,proc3") 83*9c5db199SXin Li 84*9c5db199SXin Li host = base_classes.Host() 85*9c5db199SXin Li self.assertEquals(host.get_wait_up_processes(), 86*9c5db199SXin Li set(["proc1", "proc2", "proc3"])) 87*9c5db199SXin Li self.god.check_playback() 88*9c5db199SXin Li 89*9c5db199SXin Li 90*9c5db199SXin Li def test_get_wait_up_drops_duplicates(self): 91*9c5db199SXin Li global_config.global_config.get_config_value.expect_call( 92*9c5db199SXin Li "HOSTS", "wait_up_processes", default="").and_return( 93*9c5db199SXin Li "proc1,proc2,proc1") 94*9c5db199SXin Li 95*9c5db199SXin Li host = base_classes.Host() 96*9c5db199SXin Li self.assertEquals(host.get_wait_up_processes(), 97*9c5db199SXin Li set(["proc1", "proc2"])) 98*9c5db199SXin Li self.god.check_playback() 99*9c5db199SXin Li 100*9c5db199SXin Li 101*9c5db199SXin Liif __name__ == "__main__": 102*9c5db199SXin Li unittest.main() 103