Admin: Improve moto usage, simplifying and speeding up tests #793
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi there! Moto maintainer here. I had a look at the tests for
s3fs
, and realized that there is a cleaner way to use the Moto library for your usecase.The ThreadedMotoServer starts an instance of MotoServer in the background, achieving the same result as calling
moto_server s3
in a subprocess. So the behaviour is the same, it just hides the nasty details like callingsubprocess.Popen
, and having to manually callrequests.get
to verify whether the server is ready.The second change is to turn the
s3_base
fixture into a module-scoped fixture. The ThreadedMotoServer will now only be created once per module (file), meaning that the tests are executed much faster (~3mins vs ~5 mins).Because we do expect a clean slate in between tests, I added
reset_s3_fixture
- calling the reset-API in Moto deletes all existing state before every test.