Skip to content

Commit

Permalink
lambda - Fix flaky integration tests which assume there are no other …
Browse files Browse the repository at this point in the history
…functions in the account (#1279)

lambda - Fix flaky integration tests which assume there are no other functions in the account

SUMMARY
The integration tests for lambda assume that there are no other lambdas in the account.
So when we index into [0], that's not necessarily the lambda we just created.
Note that this fix doesn't work. One of the assertions is failing.
TASK [lambda : lambda_info | Assert successfull retrieval of all information 2] ***
fatal: [testhost]: FAILED! => {
    "assertion": "lambda_infos_all.function[lambda_function_name].versions is not defined",
    "changed": false,
    "evaluated_to": false,
    "msg": "Assertion failed"
}

That attribute is defined. It's a list of 2 versions. I don't know why.
I'm just creating this PR anyway, so someone else can pickup where I left off.
ISSUE TYPE

Bugfix Pull Request

COMPONENT NAME
lambda_info
ADDITIONAL INFORMATION
Fixes #1277

Reviewed-by: Mark Chappell <None>
Reviewed-by: Matthew Davis <None>
  • Loading branch information
mdavis-xyz authored Nov 29, 2022
1 parent bccd539 commit 737ee75
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 24 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/1277-lambda-int-test-other-lambdas.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- lambda - fix flaky integration test which assumes there are no other lambdas in the account (https://github.com/ansible-collections/amazon.aws/issues/1277)
2 changes: 2 additions & 0 deletions tests/integration/inventory
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[testgroup]
testhost ansible_connection="local" ansible_pipelining="yes" ansible_python_interpreter="/home/matthew/.pyenv/versions/3.10.1/bin/python3.10"
52 changes: 28 additions & 24 deletions tests/integration/targets/lambda/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -331,49 +331,53 @@
check_mode: yes
vars:
ansible_python_interpreter: '{{ botocore_virtualenv_interpreter }}'
- name: lambda_info | Assert successfull retrieval of all information
- name: lambda_info | Assert successfull retrieval of all information 1
vars:
lambda_info: "{{ lambda_infos_all.functions | selectattr('function_name', 'eq', lambda_function_name) | first }}"
assert:
that:
- lambda_infos_all is not failed
- lambda_infos_all.functions | length > 0
- lambda_infos_all.functions[0].function_name == lambda_function_name
- lambda_infos_all.functions[0].runtime == lambda_python_runtime
- lambda_infos_all.functions[0].description == ""
- lambda_infos_all.functions[0].function_arn is defined
- lambda_infos_all.functions[0].handler == lambda_python_handler
- lambda_infos_all.functions[0].versions is defined
- lambda_infos_all.functions[0].aliases is defined
- lambda_infos_all.functions[0].policy is defined
- lambda_infos_all.functions[0].mappings is defined
- lambda_infos_all.functions[0].tags is defined
- lambda_infos_all.functions[0].architectures == ['arm64']
- lambda_infos_all.functions | selectattr('function_name', 'eq', lambda_function_name) | length == 1
- lambda_info.runtime == lambda_python_runtime
- lambda_info.description == ""
- lambda_info.function_arn is defined
- lambda_info.handler == lambda_python_handler
- lambda_info.versions is defined
- lambda_info.aliases is defined
- lambda_info.policy is defined
- lambda_info.mappings is defined
- lambda_info.tags is defined
- lambda_info.architectures == ['arm64']

- name: lambda_info | Ensure default query value is 'config' when function name
omitted
lambda_info:
register: lambda_infos_query_config
check_mode: yes
- name: lambda_info | Assert successfull retrieval of all information
- name: lambda_info | Assert successfull retrieval of all information 2
vars:
lambda_info: "{{ lambda_infos_query_config.functions | selectattr('function_name', 'eq', lambda_function_name) | first }}"
assert:
that:
- lambda_infos_query_config is not failed
- lambda_infos_query_config.functions | length > 0
- lambda_infos_query_config.functions[0].function_name == lambda_function_name
- lambda_infos_query_config.functions[0].runtime == lambda_python_runtime
- lambda_infos_query_config.functions[0].description == ""
- lambda_infos_query_config.functions[0].function_arn is defined
- lambda_infos_query_config.functions[0].handler == lambda_python_handler
- lambda_infos_query_config.functions[0].versions is not defined
- lambda_infos_query_config.functions[0].aliases is not defined
- lambda_infos_query_config.functions[0].policy is not defined
- lambda_infos_query_config.functions[0].mappings is not defined
- lambda_infos_query_config.functions[0].tags is not defined
- lambda_infos_query_config.functions | selectattr('function_name', 'eq', lambda_function_name) | length == 1
- lambda_info.runtime == lambda_python_runtime
- lambda_info.description == ""
- lambda_info.function_arn is defined
- lambda_info.handler == lambda_python_handler
- lambda_info.versions is not defined
- lambda_info.aliases is not defined
- lambda_info.policy is not defined
- lambda_info.mappings is not defined
- lambda_info.tags is not defined

- name: lambda_info | Ensure default query value is 'all' when function name specified
lambda_info:
name: '{{ lambda_function_name }}'
register: lambda_infos_query_all
- name: lambda_info | Assert successfull retrieval of all information
- name: lambda_info | Assert successfull retrieval of all information 3
assert:
that:
- lambda_infos_query_all is not failed
Expand Down

0 comments on commit 737ee75

Please sign in to comment.