Cannot programmatically determine cause of failures from Auth.get_s3_credentials method
chuckwondo opened this issue · 0 comments
When the Auth.get_s3_credentials
method fails to fetch s3 credentials, it simply returns an empty dict. Unfortunately, this makes it impossible to tell why it failed, since there are several possible cases for failure.
Consider a means for determining the cause of a failure, perhaps by raising various exception types to distinguish the various cases from each other.
Not being able to distinguish the various causes of failures can make it difficult to determine an appropriate course of action to take. Even within this library's integration tests, we cannot make a determination, which prevents the test from knowing whether a failure is an acceptable failure, allowing the test to pass, or one that should cause the test to fail.
For reference, see https://github.com/nsidc/earthaccess/blob/main/tests/integration/test_auth.py#L94, where we reach this line because the call to Auth.get_s3_credentials
does not raise an exception, but the test will fail because it thus expects to find credentials in the return value, but doesn't. Unfortunately, there seems to be cases where the test should not fail even though the method call fails, but currently there's no way to distinguish "acceptable" failures from unacceptable failures.