Update README.md - clean up list of supported services (#4313)

This commit is contained in:
Bert Blommers 2021-09-21 14:02:42 +00:00 committed by GitHub
parent 0dfae06126
commit afa7f40f1e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 291 additions and 7498 deletions

File diff suppressed because it is too large Load Diff

106
README.md
View File

@ -70,62 +70,58 @@ def test_my_model_save():
With the decorator wrapping the test, all the calls to s3 are automatically mocked out. The mock keeps the state of the buckets and keys. With the decorator wrapping the test, all the calls to s3 are automatically mocked out. The mock keeps the state of the buckets and keys.
It gets even better! Moto isn't just for Python code and it isn't just for S3. Look at the [standalone server mode](https://github.com/spulec/moto#stand-alone-server-mode) for more information about running Moto with other languages. Here's the status of the other AWS services implemented: It gets even better! Moto isn't just for Python code and it isn't just for S3. Look at the [standalone server mode](https://github.com/spulec/moto#stand-alone-server-mode) for more information about running Moto with other languages.
Here's the partial list of the AWS services that currently have support:
| Service Name | Decorator | Development Status | Comment | | Service Name | Decorator | Comment |
|---------------------------|-----------------------|---------------------------------|-----------------------------| |---------------------------|-----------------------|------------------------------|
| ACM | @mock_acm | all endpoints done | | | ACM | @mock_acm | |
| API Gateway | @mock_apigateway | core endpoints done | | | API Gateway | @mock_apigateway | |
| Application Autoscaling | @mock_applicationautoscaling | basic endpoints done | | | Application Autoscaling | @mock_applicationautoscaling | |
| Athena | @mock_athena | core endpoints done | | | Athena | @mock_athena | |
| Autoscaling | @mock_autoscaling | core endpoints done | | | Autoscaling | @mock_autoscaling | |
| Cloudformation | @mock_cloudformation | core endpoints done | | | Cloudformation | @mock_cloudformation | |
| Cloudwatch | @mock_cloudwatch | basic endpoints done | | | Cloudwatch | @mock_cloudwatch | |
| CloudwatchEvents | @mock_events | all endpoints done | | | CloudwatchEvents | @mock_events | |
| Cognito Identity | @mock_cognitoidentity | basic endpoints done | | | Cognito Identity | @mock_cognitoidentity | |
| Cognito Identity Provider | @mock_cognitoidp | basic endpoints done | | | Cognito Identity Provider | @mock_cognitoidp | |
| Config | @mock_config | basic + core endpoints done | | | Config | @mock_config | |
| Data Pipeline | @mock_datapipeline | basic endpoints done | | | Data Pipeline | @mock_datapipeline | |
| DynamoDB | @mock_dynamodb | core endpoints done | API 20111205. Deprecated. | | DynamoDB | @mock_dynamodb | API 20111205. Deprecated. |
| DynamoDB2 | @mock_dynamodb2 | core endpoints done | API 20120810 (Latest) | | DynamoDB2 | @mock_dynamodb2 | API 20120810 (Latest) |
| EC2 | @mock_ec2 | core endpoints done | | | EC2 | @mock_ec2 | |
| - AMI | | core endpoints done | | | ECR | @mock_ecr | |
| - EBS | | core endpoints done | | | ECS | @mock_ecs | |
| - Instances | | all endpoints done | | | ELB | @mock_elb | |
| - Security Groups | | core endpoints done | | | ELBv2 | @mock_elbv2 | |
| - Tags | | all endpoints done | | | EMR | @mock_emr | |
| ECR | @mock_ecr | basic endpoints done | | | Forecast | @mock_forecast | |
| ECS | @mock_ecs | basic endpoints done | | | Glacier | @mock_glacier | |
| ELB | @mock_elb | core endpoints done | | | Glue | @mock_glue | |
| ELBv2 | @mock_elbv2 | all endpoints done | | | IAM | @mock_iam | |
| EMR | @mock_emr | core endpoints done | | | IoT | @mock_iot | |
| Forecast | @mock_forecast | some core endpoints done | | | IoT data | @mock_iotdata | |
| Glacier | @mock_glacier | core endpoints done | | | Kinesis | @mock_kinesis | |
| Glue | @mock_glue | core endpoints done | | | KMS | @mock_kms | |
| IAM | @mock_iam | core endpoints done | | | Lambda | @mock_lambda | Invoking Lambdas requires docker |
| IoT | @mock_iot | core endpoints done | | | Logs | @mock_logs | |
| IoT data | @mock_iotdata | core endpoints done | | | Organizations | @mock_organizations | |
| Kinesis | @mock_kinesis | core endpoints done | | | Polly | @mock_polly | |
| KMS | @mock_kms | basic endpoints done | | | RAM | @mock_ram | |
| Lambda | @mock_lambda | basic endpoints done, requires docker | | | RDS | @mock_rds | |
| Logs | @mock_logs | basic endpoints done | | | RDS2 | @mock_rds2 | |
| Organizations | @mock_organizations | some core endpoints done | | | Redshift | @mock_redshift | |
| Polly | @mock_polly | all endpoints done | | | Route53 | @mock_route53 | |
| RAM | @mock_ram | core endpoints done | | | S3 | @mock_s3 | |
| RDS | @mock_rds | core endpoints done | | | SecretsManager | @mock_secretsmanager | |
| RDS2 | @mock_rds2 | core endpoints done | | | SES | @mock_ses | |
| Redshift | @mock_redshift | core endpoints done | | | SNS | @mock_sns | |
| Route53 | @mock_route53 | core endpoints done | | | SQS | @mock_sqs | |
| S3 | @mock_s3 | core endpoints done | | | SSM | @mock_ssm | |
| SecretsManager | @mock_secretsmanager | basic endpoints done | | | Step Functions | @mock_stepfunctions | |
| SES | @mock_ses | all endpoints done | | | STS | @mock_sts | |
| SNS | @mock_sns | all endpoints done | | | SWF | @mock_swf | |
| SQS | @mock_sqs | core endpoints done | | | X-Ray | @mock_xray | |
| SSM | @mock_ssm | core endpoints done | |
| Step Functions | @mock_stepfunctions | core endpoints done | |
| STS | @mock_sts | core endpoints done | |
| SWF | @mock_swf | basic endpoints done | |
| X-Ray | @mock_xray | all endpoints done | |
For a full list of endpoint [implementation coverage](https://github.com/spulec/moto/blob/master/IMPLEMENTATION_COVERAGE.md) For a full list of endpoint [implementation coverage](https://github.com/spulec/moto/blob/master/IMPLEMENTATION_COVERAGE.md)

View File

@ -7,7 +7,7 @@ import boto3
script_dir = os.path.dirname(os.path.abspath(__file__)) script_dir = os.path.dirname(os.path.abspath(__file__))
alternative_service_names = {"lambda": "awslambda", "dynamodb": "dynamodb2"} alternative_service_names = {"lambda": "awslambda", "dynamodb": "dynamodb2", "rds": "rds2"}
def get_moto_implementation(service_name): def get_moto_implementation(service_name):
@ -93,8 +93,12 @@ def write_implementation_coverage_to_file(coverage):
print("Writing to {}".format(implementation_coverage_file)) print("Writing to {}".format(implementation_coverage_file))
with open(implementation_coverage_file, "w+") as file: with open(implementation_coverage_file, "w+") as file:
completely_unimplemented = []
for service_name in sorted(coverage): for service_name in sorted(coverage):
implemented = coverage.get(service_name)["implemented"] implemented = coverage.get(service_name)["implemented"]
if len(implemented) == 0:
completely_unimplemented.append(service_name)
continue
not_implemented = coverage.get(service_name)["not_implemented"] not_implemented = coverage.get(service_name)["not_implemented"]
operations = sorted(implemented + not_implemented) operations = sorted(implemented + not_implemented)
@ -120,6 +124,13 @@ def write_implementation_coverage_to_file(coverage):
file.write("- [ ] {}\n".format(op)) file.write("- [ ] {}\n".format(op))
file.write("</details>\n") file.write("</details>\n")
file.write("\n")
file.write("## Unimplemented:\n")
file.write("<details>\n\n")
for service in completely_unimplemented:
file.write("- {}\n".format(service))
file.write("</details>")
if __name__ == "__main__": if __name__ == "__main__":
cov = calculate_implementation_coverage() cov = calculate_implementation_coverage()