Most active commenters
  • mdaniel(5)

←back to thread

194 points kbumsik | 14 comments | | HN request time: 0.422s | source | bottom
1. mdaniel ◴[] No.41889095[source]
All this mocking when moto exists is just :-( https://github.com/awslabs/git-remote-s3/blob/v0.1.19/test/r...

Actually, moto is just one bandaid for that problem - there are SO MANY s3 storage implementations, including the pre-license-switch Apache 2 version of minio (one need not use a bleeding edge for something as relatively stable as the S3 Api)

replies(3): >>41889194 #>>41889525 #>>41896008 #
2. SahAssar ◴[] No.41889194[source]
Do you mean boto (the python SDK for AWS)?

EDIT: They probably do not, I'm guessing they mean https://docs.getmoto.org/en/latest/index.html ?

replies(2): >>41889381 #>>41890011 #
3. flakes ◴[] No.41889381[source]
moto server for testing S3 is pretty great. It’s about the same experience as using a minio container to run integration tests against.

I use this, and testing.postgresql for unit testing my api servers with barely any mocks used at all.

replies(1): >>41890282 #
4. notpushkin ◴[] No.41889525[source]
> there are SO MANY s3 storage implementations

I suppose given this is under the AWS Labs org, they don’t really care about non-AWS S3 implementations.

replies(1): >>41889981 #
5. mdaniel ◴[] No.41889981[source]
Well, I look forward to their `docker run awslabs/the-real-s3:latest` implementation then. Until such time, monkeypatching api calls to always give the exact answer the consumer is looking for is damn cheating
replies(2): >>41890151 #>>41890250 #
6. mdaniel ◴[] No.41890011[source]
Happy 10,000th Day to you :-D Yes, moto and its friend localstack are just fantastic for being able to play with AWS without spending money, or to reproduce kabooms that only happen once a month with the real API

I believe moto has an "embedded" version such that one need not even have in listen on a network port, but I find it much, much less mental gymnastics to just supersede the "endpoint" address in the actual AWS SDKs to point to 127.0.0.1:4566 and off to the races. The AWS SDKs are even so friendly as to not mandate TLS or have allowlists of endpoint addresses, unlike their misguided Azure colleagues

replies(1): >>41890155 #
7. chrsig ◴[] No.41890151{3}[source]
it wouldn't be unprecedented. dynamodb-local exists.
8. SahAssar ◴[] No.41890155{3}[source]
> Happy 10,000th Day to you :-D

Sorry, not sure what you mean?

replies(1): >>41890180 #
9. mdaniel ◴[] No.41890180{4}[source]
https://xkcd.com/1053/
replies(1): >>41895121 #
10. notpushkin ◴[] No.41890250{3}[source]
Agreed, haha. Well, I think it should work with Minio & co. just as well, but be prepared to have your issues closed as unsupported. (Pesonally, I might give it a go with Backblaze B2 just to play around, yeah)
11. neeleshs ◴[] No.41890282{3}[source]
There is also testcontainers. Supports multiple languages. Uses containers though.

https://testcontainers-python.readthedocs.io/en/latest/

12. misnome ◴[] No.41895121{5}[source]
How do you know they are in the US?
13. remram ◴[] No.41896008[source]
Unfortunately there's been a few vulnerability since that old Minio release. For something you expose to users, it's a problem.
replies(1): >>41896068 #
14. mdaniel ◴[] No.41896068[source]
I would hope my mentioning moto made it clear my comment was about having an S3 implementation for testing. Presumably one should not expose moto to users, either