def test_returns_instance_id_if_probability_test_succeeds(self): self.choice.side_effect = lambda l: l[0] self.get_asg_probability.return_value = 0.5 self.random.return_value = 0.0 asg = {"Instances": [{"InstanceId": "i-1234abcd"}]} self.assertEqual(chaos.get_asg_instance_id(asg), "i-1234abcd") self.get_asg_probability.assert_called_once_with(asg)
def test_returns_None_if_probability_test_fails(self): self.choice.side_effect = lambda l: l[0] self.get_asg_probability.return_value = 0.5 self.random.return_value = 1.0 asg = {"Instances": [{"InstanceId": "i-1234abcd"}]} default = mock.sentinel.default self.assertEqual(chaos.get_asg_instance_id(asg, default), None) self.get_asg_probability.assert_called_once_with(asg, default)
def test_returns_random_choice_of_instance_ids(self): self.get_asg_probability.return_value = 0.5 self.random.return_value = 0.0 instances = [ {"InstanceId": "i-00000000"}, {"InstanceId": "i-11111111"}, {"InstanceId": "i-22222222"} ] i = chaos.get_asg_instance_id({"Instances": instances}, 0) self.choice.assert_called_once_with(instances) self.assertEqual(i, self.choice.return_value.get.return_value)
def test_returns_random_choice_of_instance_ids(self): self.get_asg_probability.return_value = 0.5 self.random.return_value = 0.0 instances = [{ "InstanceId": "i-00000000" }, { "InstanceId": "i-11111111" }, { "InstanceId": "i-22222222" }] i = chaos.get_asg_instance_id({"Instances": instances}, 0) self.choice.assert_called_once_with(instances) self.assertEqual(i, self.choice.return_value.get.return_value)
def test_returns_None_if_there_are_no_instances(self): self.random.return_value = 1.0 asg = {"Instances": []} self.assertEqual(chaos.get_asg_instance_id(asg, 0), None) asg = {} self.assertEqual(chaos.get_asg_instance_id(asg, 0), None)