class AutoEvacuateTestCase(TestCase): def setUp(self): self.subject = AutoEvacuate() self.subject.client.hypervisors = Mock() self.subject.client.hypervisors.list.return_value = [] self.subject.client.servers = Mock() self.subject.client.servers.list.return_value = [] def tearDown(self): pass def test_failover(self): vm = Mock() self.subject.failover(vm) vm.evacuate.assert_called_with() # with exception vm.evacuate.side_effect = Exception self.subject.failover(vm) def test_treat_failed(self): host = Mock() host.hypervisor_hostname = "test-host" self.subject.failover = Mock() self.subject.client.servers.list.return_value = ["a","b","c"] self.subject.treat_failed(host) self.subject.failover.assert_called_with("c") self.subject.client.servers.list.assert_called_with(search_opts={'all_tenants':1, 'host':host.hypervisor_hostname}) def test_failed_hosts(self): hosts = range(0,4) for i in range(0,4): hosts[i] = Mock() hosts[0].state = "up" hosts[0].status = "enabled" hosts[1].state = "down" hosts[1].status = "enabled" hosts[2].state = "up" hosts[2].status = "disabled" hosts[3].state = "down" hosts[3].status = "disabled" self.subject.client.hypervisors.list.return_value = hosts failes = self.subject.failed_hosts() self.assertEqual(failes, [hosts[1]])
def setUp(self): self.subject = AutoEvacuate() self.subject.client.hypervisors = Mock() self.subject.client.hypervisors.list.return_value = [] self.subject.client.servers = Mock() self.subject.client.servers.list.return_value = []