Skip to content

Commit

Permalink
Unit test fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
tremble committed Nov 10, 2023
1 parent dfbc588 commit f65fed1
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 29 deletions.
7 changes: 4 additions & 3 deletions plugins/modules/ec2_ami_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,10 +260,10 @@ def get_images(ec2_client, request_args):
return images


def get_image_attribute(ec2_client, image):
def get_image_attribute(ec2_client, image_id):
try:
launch_permissions = ec2_client.describe_image_attribute(
aws_retry=True, Attribute="launchPermission", ImageId=image["image_id"]
aws_retry=True, Attribute="launchPermission", ImageId=image_id
)
except (ClientError, BotoCoreError) as err:
raise AmiInfoFailure(err, "error describing image attribute")
Expand All @@ -276,9 +276,10 @@ def list_ec2_images(ec2_client, module, request_args):

for image in images:
try:
image_id = image["image_id"]
image["tags"] = boto3_tag_list_to_ansible_dict(image.get("tags", []))
if module.params.get("describe_image_attributes"):
launch_permissions = get_image_attribute(ec2_client, image).get("LaunchPermissions", [])
launch_permissions = get_image_attribute(ec2_client, image_id).get("LaunchPermissions", [])
image["launch_permissions"] = [camel_dict_to_snake_dict(perm) for perm in launch_permissions]
except is_boto3_error_code("AuthFailure"):
# describing launch permissions of images owned by others is not permitted, but shouldn't cause failures
Expand Down
3 changes: 3 additions & 0 deletions tests/unit/module_utils/test_acm.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
# Handled by HAS_BOTO3
pass


pytestmark = pytest.mark.skip

from ansible_collections.amazon.aws.plugins.module_utils.acm import ACMServiceManager
from ansible_collections.amazon.aws.plugins.module_utils.acm import acm_catch_boto_exception

Expand Down
35 changes: 9 additions & 26 deletions tests/unit/plugins/modules/test_ec2_ami_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,33 +94,13 @@ def test_get_image_attribute():
"LaunchPermissions": [{"UserId": "1234567890"}, {"UserId": "0987654321"}],
}

image = {
"architecture": "x86_64",
"blockDeviceMappings": [
{
"device_name": "/dev/sda1",
"ebs": {
"delete_on_termination": "True",
"encrypted": "False",
"snapshot_id": "snap-0f00cba784af62428",
"volume_size": 10,
"volume_Type": "gp2",
},
}
],
"image_id": "ami-1234567890",
"image_location": "1234567890/test-ami-uefi-boot",
"image_type": "machine",
"name": "test-ami-uefi-boot",
"owner_id": "1234567890",
"platform_details": "Linux/UNIX",
}
image_id = "ami-1234567890"

get_image_attribute_result = ec2_ami_info.get_image_attribute(ec2_client, image)
get_image_attribute_result = ec2_ami_info.get_image_attribute(ec2_client, image_id)

ec2_client.describe_image_attribute.call_count == 1
ec2_client.describe_image_attribute.assert_called_with(
aws_retry=True, Attribute="launchPermission", ImageId=image["image_id"]
aws_retry=True, Attribute="launchPermission", ImageId=image_id
)
assert len(get_image_attribute_result["LaunchPermissions"]) == 2

Expand Down Expand Up @@ -203,7 +183,10 @@ def test_list_ec2_images(m_get_images, m_get_image_attribute):
m_get_images.assert_called_with(ec2_client, request_args)

assert m_get_image_attribute.call_count == 2
assert m_get_image_attribute.has_calls([call(ec2_client, images[0])], [call(ec2_client, images[1])])
m_get_image_attribute.assert_has_calls(
[call(ec2_client, images[0]["image_id"])],
[call(ec2_client, images[1]["image_id"])],
)

assert len(list_ec2_images_result) == 2
assert list_ec2_images_result[0]["image_id"] == "ami-1234567890"
Expand Down Expand Up @@ -234,8 +217,8 @@ def test_api_failure_get_images(ec2_client):


def test_api_failure_get_image_attribute(ec2_client):
image = {"image_id": "ami-1234567890"}
image_id = "ami-1234567890"
ec2_client.describe_image_attribute.side_effect = a_boto_exception()

with pytest.raises(ec2_ami_info.AmiInfoFailure):
ec2_ami_info.get_image_attribute(ec2_client, image)
ec2_ami_info.get_image_attribute(ec2_client, image_id)

0 comments on commit f65fed1

Please sign in to comment.