Cam & Ed | Refactor duplication in security group tests into setup method

This commit is contained in:
Ed Thome 2014-10-27 17:29:40 -05:00
parent 34bbbecc26
commit 66277884df
1 changed files with 17 additions and 34 deletions

View File

@ -11,56 +11,39 @@ from random import randint
class TestSecurityGroups(EC2TestBase):
def setUp(self):
EC2TestBase.setUp()
self.instance, instance_id = self.spawn_ec2_instance()
self.security_group = self.nova.security_groups.create("securityGroupName" + str(randint(1, 10000)),
"Security group description")
self.nova.servers.add_security_group(self.instance.id, self.security_group.name)
self.matching_ec2_security_groups = self._wait_for_ec2_security_group_to_have_instance(self.security_group)
def test_should_create_ec2_security_group_if_it_does_not_exist(self):
instance, instance_id = self.spawn_ec2_instance()
security_group = self.nova.security_groups.create("securityGroupName" + str(randint(1, 10000)), "Security group description")
self.nova.servers.add_security_group(instance.id, security_group.name)
matching_ec2_security_groups = self._wait_for_ec2_security_group_to_have_instance(security_group)
self.assertEqual(len(matching_ec2_security_groups), 1)
self.assertEqual(len(self.matching_ec2_security_groups), 1)
@unittest.skipIf(os.environ.get('MOCK_EC2'), 'Not supported by moto')
def test_should_add_security_group_to_ec2_instance(self):
instance, instance_id = self.spawn_ec2_instance()
security_group = self.nova.security_groups.create("securityGroupName" + str(randint(1, 10000)), "Security group description")
self.nova.servers.add_security_group(instance.id, security_group.name)
matching_ec2_security_groups = self._wait_for_ec2_security_group_to_have_instance(security_group)
self.assertEqual(instance.metadata['ec2_id'], matching_ec2_security_groups[0].instances()[0].id)
self.assertEqual(self.instance.metadata['ec2_id'], self.matching_ec2_security_groups[0].instances()[0].id)
@unittest.skipIf(os.environ.get('MOCK_EC2'), 'Not supported by moto')
def test_should_remove_security_group_from_ec2_instance(self):
# Setup
instance, instance_id = self.spawn_ec2_instance()
security_group = self.nova.security_groups.create("securityGroupName" + str(randint(1, 10000)), "Security group description")
self.assertEqual(self.matching_ec2_security_groups[0].instances()[0].id, self.instance.metadata['ec2_id'])
self.nova.servers.add_security_group(instance.id, security_group.name)
matching_ec2_security_groups = self._wait_for_ec2_security_group_to_have_instance(security_group)
self.assertEqual(matching_ec2_security_groups[0].instances()[0].id, instance.metadata['ec2_id'])
# Action
self.nova.servers.remove_security_group(instance.id, security_group.name)
# Assertion
updated_matching_ec2_security_group = self._wait_for_ec2_group_to_have_no_instances(security_group)
self.nova.servers.remove_security_group(self.instance.id, self.security_group.name)
updated_matching_ec2_security_group = self._wait_for_ec2_group_to_have_no_instances(self.security_group)
self.assertEqual(updated_matching_ec2_security_group.instances(), [])
def test_should_delete_security_group(self):
pass
def test_rules(self):
def test_should_add_rule_to_ec2_security_group_when_group_has_an_instance(self):
pass
def _wait_for_ec2_group_to_have_no_instances(self, security_group):
updated_matching_ec2_security_group = self.ec2_conn.get_all_security_groups(groupnames=security_group.name)[0]
while updated_matching_ec2_security_group.instances():
updated_matching_ec2_security_group = self.ec2_conn.get_all_security_groups(groupnames=security_group.name)[
0]
updated_matching_ec2_security_group =\
self.ec2_conn.get_all_security_groups(groupnames=security_group.name)[0]
return updated_matching_ec2_security_group
def _wait_for_ec2_security_group_to_have_instance(self, security_group):