def test_wait_for_machine_waits_for_multiple_machines(self): # wait_for_machine can be told to wait for multiple machines. juju_yaml = self._make_juju_status_yaml( num_units=2, machine_state='running') mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) machines, time_taken = charmhelpers.wait_for_machine(num_machines=2) self.assertEqual(2, machines)
def test_wait_for_machine_returns_if_machine_up(self): # If wait_for_machine() is called and the machine(s) it is # waiting for are already up, it will return. juju_yaml = self._make_juju_status_yaml(machine_state='running') mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) machines, time_taken = charmhelpers.wait_for_machine(timeout=1) self.assertEqual(1, machines)
def test_wait_for_machine_waits_for_multiple_machines(self): # wait_for_machine can be told to wait for multiple machines. juju_yaml = self._make_juju_status_yaml(num_units=2, machine_state='running') mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) machines, time_taken = charmhelpers.wait_for_machine(num_machines=2) self.assertEqual(2, machines)
def test_wait_for_machine_always_returns_if_running_locally(self): # If juju is actually running against a local LXC container, # wait_for_machine will always return. juju_status_dict = self._make_juju_status_dict() # We'll update the 0th machine to make it look like it's an LXC # container. juju_status_dict['machines'][0]['dns-name'] = 'localhost' juju_yaml = yaml.dump(juju_status_dict) mock_juju_status = lambda: juju_yaml self.patch(charmhelpers, 'juju_status', mock_juju_status) machines, time_taken = charmhelpers.wait_for_machine(timeout=1) # wait_for_machine will always return 1 machine started here, # since there's only one machine to start. self.assertEqual(1, machines) # time_taken will be 0, since no actual waiting happened. self.assertEqual(0, time_taken)