62 lines
2.1 KiB
ReStructuredText
62 lines
2.1 KiB
ReStructuredText
.. _contributing feature:
|
|
|
|
=============================
|
|
New Features
|
|
=============================
|
|
|
|
Moto has a script that can automatically provide the scaffolding for a new service, and for adding new features to an existing service. This script does all the heavy lifting of generating template code, by looking up the API specification of a given `boto3` method and adding the necessary code to mock it.
|
|
|
|
Please try it out by running:
|
|
|
|
.. sourcecode:: bash
|
|
|
|
export AWS_DEFAULT_REGION="us-east-2"
|
|
python scripts/scaffold.py
|
|
|
|
|
|
The script uses the `click`-module to assists with autocompletion.
|
|
|
|
- Use Tab to auto-complete the first suggest service, or
|
|
- Use the up and down-arrows on the keyboard to select something from the dropdown
|
|
- Press enter to continue
|
|
|
|
An example interaction:
|
|
|
|
.. sourcecode:: bash
|
|
|
|
$ python scripts/scaffold.py
|
|
Select service: codedeploy
|
|
|
|
==Current Implementation Status==
|
|
[ ] add_tags_to_on_premises_instances
|
|
...
|
|
[ ] create_deployment
|
|
...
|
|
[ ] update_deployment_group
|
|
=================================
|
|
Select Operation: create_deployment
|
|
|
|
|
|
Initializing service codedeploy
|
|
creating moto/codedeploy
|
|
creating moto/codedeploy/models.py
|
|
creating moto/codedeploy/exceptions.py
|
|
creating moto/codedeploy/__init__.py
|
|
creating moto/codedeploy/responses.py
|
|
creating moto/codedeploy/urls.py
|
|
creating tests/test_codedeploy
|
|
creating tests/test_codedeploy/test_server.py
|
|
creating tests/test_codedeploy/test_codedeploy.py
|
|
inserting code moto/codedeploy/responses.py
|
|
inserting code moto/codedeploy/models.py
|
|
|
|
Remaining steps after development is complete:
|
|
- Run scripts/implementation_coverage.py,
|
|
- Run scripts/update_backend_index.py.
|
|
|
|
|
|
.. note:: The implementation coverage script is used to automatically update the full list of supported services.
|
|
|
|
.. warning:: In order to speed up the performance of MotoServer, all AWS URL's that need intercepting are indexed.
|
|
When adding/replacing any URLs in `{service}/urls.py`, please run `python scripts/update_backend_index.py` to update this index.
|