.. _contributing tips: .. role:: raw-html(raw) :format: html ============================= Development Tips ============================= Below you can find some tips that might help during development. Naming Conventions **************************** Let's say you want to implement the `import_certificate` feature for the ACM service. Implementing the feature itself can be done by creating a method called `import_certificate` in `moto/acm/responses.py`. :raw-html:`
` It's considered good practice to deal with input/output formatting and validation in `responses.py`, and create a method `import_certificate` in `moto/acm/models.py` that handles the actual import logic. When writing tests, you'll want to add a new method called `def test_import_certificate` to `tests/test_acm/test_acm.py`. :raw-html:`
` Additional tests should also have names indicate of what's happening, i.e. `def test_import_certificate_fails_without_name`, `def test_import_existing_certificate`, etc. Partial Implementations ^^^^^^^^^^^^^^^^^^^^^^^^^^^ If a service is only partially implemented, a warning can be used to inform the user: .. sourcecode:: python import warnings warnings.warn("The Filters-parameter is not yet implemented for client.method()")