94d35af520
This change introduces a checklist similar to IMPLEMENTATION_COVERAGE.md to document moto's adherence to the full CloudFormation specification. The script (invoked via `make cloudformation_coverage`) finds any moto models that implement `moto.core.common_models.CloudFormationModel` and checks to see if all CRUD methods are implemented. For `has_cfn_attr`, it also checks to see if all of the attributes exposed by `Fn::GetAtt` are implemented. It does not check to see if `physical_resource_id` is implemented because as far as I can tell, the published AWS spec doesn't include that information: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html A more aggressive approach would be to remove default implementations from all the abstract methods and allow Python to throw for any unimplemented method. But that would obviously break a lot of things. Instead, I think the checklist represents good documentation for users about what they can and can't expect moto to handle when parsing their CloudFormation templates. It also serves as a nice to-do list of small improvements for contributors to add (and I'll likely add a few myself). Many of these would be particularly good "first issues" for first time contributors because in general, these methods just call existing methods. |
||
---|---|---|
.. | ||
template | ||
bump_version | ||
ci_moto_server.sh | ||
ci_wait_for_server.py | ||
cloudformation_coverage.py | ||
dependency_test.sh | ||
ec2_get_instance_type_offerings.py | ||
get_amis.py | ||
get_instance_info.py | ||
implementation_coverage.py | ||
pull_down_aws_managed_rules.py | ||
rds_get_orderable_db_cluster_options.py | ||
scaffold.py | ||
ssm_get_default_amis.py | ||
ssm_get_default_params.py | ||
ssm_get_optimized_amis.py | ||
update_backend_index.py | ||
update_managed_policies.py |