def test_set_security_groups_invalid_alb_type(aws_client): client = MagicMock() aws_client.return_value = client alb_names = ["test-loadbalancer-01", "test-loadbalancer-02"] security_group_ids = ["sg-0123456789abcdef0", "sg-0fedcba9876543210"] client.describe_security_groups.return_value = { "SecurityGroups": [ {"GroupId": "sg-0123456789abcdef0"}, {"GroupId": "sg-0fedcba9876543210"}, ] } client.describe_load_balancers.return_value = { "LoadBalancers": [ { "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:" "000000000000:loadbalancer/app/" "test-loadbalancer-01/0f158eab895ab000", "State": {"Code": "active"}, "Type": "application", "LoadBalancerName": alb_names[0], }, { "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:" "000000000000:loadbalancer/app/" "test-loadbalancer-02/010aec0000fae123", "State": {"Code": "active"}, "Type": "network", "LoadBalancerName": alb_names[1], }, ] } with pytest.raises(FailedActivity) as x: set_security_groups(alb_names, security_group_ids) assert "Cannot change security groups of network load balancers." in str(x.value)
def test_set_security_group_invalid_alb_name(aws_client): client = MagicMock() aws_client.return_value = client alb_names = ['test-loadbalancer-01', 'test-loadbalancer-02'] security_group_ids = ['sg-0123456789abcdef0', 'sg-0fedcba9876543210'] client.describe_security_groups.return_value = { 'SecurityGroups': [{ 'GroupId': 'sg-0123456789abcdef0' }, { 'GroupId': 'sg-0fedcba9876543210' }] } client.describe_load_balancers.return_value = { 'LoadBalancers': [{ 'LoadBalancerArn': 'arn:aws:elasticloadbalancing:us-east-1:' '000000000000:loadbalancer/app/' 'test-loadbalancer-01/0f158eab895ab000', 'State': { 'Code': 'active' }, 'Type': 'application', 'LoadBalancerName': alb_names[0] }] } with pytest.raises(FailedActivity) as x: set_security_groups(alb_names, security_group_ids) assert 'Unable to locate load balancer(s): {}'.format([alb_names[1] ]) in str(x)
def test_set_security_group_no_args(): with pytest.raises(TypeError) as x: set_security_groups() assert ( "set_security_groups() missing 2 required positional arguments: " "'load_balancer_names' and 'security_group_ids" in str(x.value) )
def test_set_security_group_no_subnets(): alb_names = ["test-loadbalancer-01", "test-loadbalancer-02"] with pytest.raises(TypeError) as x: set_security_groups(alb_names) assert ( "set_security_groups() missing 1 required positional " "argument: 'security_group_ids'" in str(x.value) )
def test_set_security_groups(aws_client): client = MagicMock() aws_client.return_value = client alb_names = ['test-loadbalancer-01', 'test-loadbalancer-02'] security_group_ids = ['sg-0123456789abcdef0', 'sg-0fedcba9876543210'] client.describe_security_groups.return_value = { 'SecurityGroups': [{ 'GroupId': 'sg-0123456789abcdef0' }, { 'GroupId': 'sg-0fedcba9876543210' }] } client.describe_load_balancers.return_value = { 'LoadBalancers': [{ 'LoadBalancerArn': 'arn:aws:elasticloadbalancing:us-east-1:' '000000000000:loadbalancer/app/' 'test-loadbalancer-01/0f158eab895ab000', 'State': { 'Code': 'active' }, 'Type': 'application', 'LoadBalancerName': alb_names[0] }, { 'LoadBalancerArn': 'arn:aws:elasticloadbalancing:us-east-1:' '000000000000:loadbalancer/app/' 'test-loadbalancer-02/010aec0000fae123', 'State': { 'Code': 'active' }, 'Type': 'application', 'LoadBalancerName': alb_names[1] }] } set_security_groups(alb_names, security_group_ids) calls = [ call(LoadBalancerArn='arn:aws:elasticloadbalancing:us-east-1:' '000000000000:loadbalancer/app/' 'test-loadbalancer-01/0f158eab895ab000', SecurityGroups=security_group_ids), call(LoadBalancerArn='arn:aws:elasticloadbalancing:us-east-1:' '000000000000:loadbalancer/app/' 'test-loadbalancer-02/010aec0000fae123', SecurityGroups=security_group_ids) ] client.set_security_groups.assert_has_calls(calls, any_order=True)
def test_set_security_groups_invalid_group(aws_client): client = MagicMock() aws_client.return_value = client alb_names = ["test-loadbalancer-01", "test-loadbalancer-02"] security_group_ids = ["sg-0123456789abcdef0", "sg-0fedcba9876543210"] client.describe_security_groups.return_value = { "SecurityGroups": [{"GroupId": "sg-0123456789abcdef0"}] } with pytest.raises(FailedActivity) as x: set_security_groups(alb_names, security_group_ids) assert f"Invalid security group id(s): {[security_group_ids[1]]}" in str(x.value)
def test_set_security_groups(aws_client): client = MagicMock() aws_client.return_value = client alb_names = ["test-loadbalancer-01", "test-loadbalancer-02"] security_group_ids = ["sg-0123456789abcdef0", "sg-0fedcba9876543210"] client.describe_security_groups.return_value = { "SecurityGroups": [ {"GroupId": "sg-0123456789abcdef0"}, {"GroupId": "sg-0fedcba9876543210"}, ] } client.describe_load_balancers.return_value = { "LoadBalancers": [ { "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:" "000000000000:loadbalancer/app/" "test-loadbalancer-01/0f158eab895ab000", "State": {"Code": "active"}, "Type": "application", "LoadBalancerName": alb_names[0], }, { "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:" "000000000000:loadbalancer/app/" "test-loadbalancer-02/010aec0000fae123", "State": {"Code": "active"}, "Type": "application", "LoadBalancerName": alb_names[1], }, ] } set_security_groups(alb_names, security_group_ids) calls = [ call( LoadBalancerArn="arn:aws:elasticloadbalancing:us-east-1:" "000000000000:loadbalancer/app/" "test-loadbalancer-01/0f158eab895ab000", SecurityGroups=security_group_ids, ), call( LoadBalancerArn="arn:aws:elasticloadbalancing:us-east-1:" "000000000000:loadbalancer/app/" "test-loadbalancer-02/010aec0000fae123", SecurityGroups=security_group_ids, ), ] client.set_security_groups.assert_has_calls(calls, any_order=True)
def test_set_security_groups_invalid_group(aws_client): client = MagicMock() aws_client.return_value = client alb_names = ['test-loadbalancer-01', 'test-loadbalancer-02'] security_group_ids = ['sg-0123456789abcdef0', 'sg-0fedcba9876543210'] client.describe_security_groups.return_value = { 'SecurityGroups': [{ 'GroupId': 'sg-0123456789abcdef0' }] } with pytest.raises(FailedActivity) as x: set_security_groups(alb_names, security_group_ids) assert 'Invalid security group id(s): {}'.format([security_group_ids[1] ]) in str(x)
def test_set_security_groups_invalid_alb_type(aws_client): client = MagicMock() aws_client.return_value = client alb_names = ['test-loadbalancer-01', 'test-loadbalancer-02'] security_group_ids = ['sg-0123456789abcdef0', 'sg-0fedcba9876543210'] client.describe_security_groups.return_value = { 'SecurityGroups': [{ 'GroupId': 'sg-0123456789abcdef0' }, { 'GroupId': 'sg-0fedcba9876543210' }] } client.describe_load_balancers.return_value = { 'LoadBalancers': [{ 'LoadBalancerArn': 'arn:aws:elasticloadbalancing:us-east-1:' '000000000000:loadbalancer/app/' 'test-loadbalancer-01/0f158eab895ab000', 'State': { 'Code': 'active' }, 'Type': 'application', 'LoadBalancerName': alb_names[0] }, { 'LoadBalancerArn': 'arn:aws:elasticloadbalancing:us-east-1:' '000000000000:loadbalancer/app/' 'test-loadbalancer-02/010aec0000fae123', 'State': { 'Code': 'active' }, 'Type': 'network', 'LoadBalancerName': alb_names[1] }] } with pytest.raises(FailedActivity) as x: set_security_groups(alb_names, security_group_ids) assert 'Cannot change security groups of network load balancers.' in str( x.value)