===================================================================== 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 ]]
|
|
}
|