1
from twisted.internet.defer import succeed
2
from txaws.ec2.model import Instance, Reservation
4
from ensemble.providers.ec2.machine import EC2ProviderMachine
6
from ensemble.lib.testing import TestCase
7
from .common import EC2TestMixin
10
class IterationTestCase(EC2TestMixin, TestCase):
12
def test_machine_iteration(self):
14
The machine iteration api of the provider should list all running
15
machines associated to the provider.
17
group_name = "ensemble-%s" % self.env_name
20
"i-foobar", "running", dns_name="x1.example.com",
21
reservation=Reservation("x-1", "u-1", groups=[group_name]))]
22
self.ec2.describe_instances()
23
self.mocker.result(succeed(instances))
26
provider = self.get_provider()
28
def validate_result(result):
29
self.assertTrue(result)
30
machine = result.pop()
31
self.assertTrue(isinstance(machine, EC2ProviderMachine))
32
self.assertEquals(machine.instance_id,
33
instances[0].instance_id)
34
self.assertEquals(machine.dns_name,
35
instances[0].dns_name)
36
self.assertFalse(result)
38
d = provider.list_machines()
39
d.addCallback(validate_result)