Contributing

To contribute to this tool, first checkout the code. You can run the tests locally using pytest and uv:

cd s3-credentials
uv run pytest

Any changes to the generated policies require an update to the docs using Cog:

uv run poe cog

To preview the documentation locally, you can use:

uv run poe livehtml

Integration tests

The main tests all use stubbed interfaces to AWS, so will not make any outbound API calls.

There is also a suite of integration tests in tests/test_integration.py which DO make API calls to AWS, using credentials from your environment variables or ~/.aws/credentials file.

These tests are skipped by default. If you have AWS configured with an account that has permission to run the actions required by s3-credentials (create users, roles, buckets etc) you can run these tests using:

uv run pytest --integration

The tests will create a number of different users and buckets and should then delete them once they finish running.