=====================================================================
Excited to bring V5 to life. This includes some BREAKING CHANGES to
several aspects of ZSH-type scwrypts. Please refer to the readme
for upgrade details (specifically docs/upgrade/v4-to-v5.md)
--- New Features -------------------------
- ZSH testing library with basic mock capabilities
- new scwrypts environment file format includes metadata and more
advanced features like optional parent env overrides, selection
inheritence, and improved structurual flexibility
- speedup cache for non-CI runs of ZSH-type scwrypts
- ${scwryptsmodule} syntax now allows a consistent unique-naming
scheme for functions in ZSH-type scwrypts while providing better
insight into origin of API calls in other modules
- reusable, case-statement-driven argument parsers in ZSH-type scwrypts
--- Changes ------------------------------
- several utility function renames in ZSH-type scwrypts to improve
consistency
- documentation comments included in ZSH libraries
- ZSH-type scwrypts now allow library modules to live alongside
executables
(zsh/lib still supported; autodetection determines default)
--- Bug Fixes ----------------------------
- hardened environment checking for REQUIRED_ENV variables; this removes
the ability to overwrite variables in local function contexts
64 lines
1.4 KiB
Bash
64 lines
1.4 KiB
Bash
#####################################################################
|
|
|
|
use unittest
|
|
testmodule=cloud.aws.eksctl.iamserviceaccount.check-exists
|
|
|
|
#####################################################################
|
|
|
|
beforeall() {
|
|
use cloud/aws/eksctl/iamserviceaccount/check-exists
|
|
use cloud/aws/eks/cli
|
|
}
|
|
|
|
beforeeach() {
|
|
_SERVICEACCOUNT=$(uuidgen)
|
|
_NAMEPACE=$(uuidgen)
|
|
_ROLE_NAME=$(uuidgen)
|
|
_ROLE_ARN="$(uuidgen)/${_ROLE_NAME}"
|
|
|
|
unittest.mock.env AWS_ACCOUNT --value $(uuidgen)
|
|
unittest.mock.env AWS_PROFILE --value $(uuidgen)
|
|
unittest.mock.env AWS_REGION --value $(uuidgen)
|
|
|
|
_ARGS=(
|
|
--serviceaccount ${_SERVICEACCOUNT}
|
|
--namespace ${_NAMEPACE}
|
|
--role-name ${_ROLE_NAME}
|
|
)
|
|
}
|
|
|
|
aftereach() {
|
|
unset _SERVICEACCOUNT _NAMESPACE _ROLE_NAME _ARGS
|
|
}
|
|
|
|
#####################################################################
|
|
|
|
test.detects-exists() {
|
|
unittest.mock cloud.aws.eks.cli \
|
|
--stdout '{"metadata":{"annotations":{"eks.amazonaws.com/role-arn":"'$_ROLE_ARN'"}}}' \
|
|
;
|
|
|
|
${testmodule} ${_ARGS[@]}
|
|
|
|
[[ $? -eq 0 ]]
|
|
}
|
|
|
|
test.detects-not-exists() {
|
|
unittest.mock cloud.aws.eks.cli \
|
|
--stdout '{}'
|
|
|
|
${testmodule} ${_ARGS[@]}
|
|
|
|
[[ $? -eq 100 ]]
|
|
}
|
|
|
|
test.detects-exists-but-does-not-match() {
|
|
unittest.mock cloud.aws.eks.cli \
|
|
--stdout '{"metadata":{"annotations":{"eks.amazonaws.com/role-arn":"'$(uuidgen)'"}}}' \
|
|
;
|
|
|
|
${testmodule} ${_ARGS[@]}
|
|
|
|
[[ $? -eq 200 ]]
|
|
}
|