38 lines
No EOL
1.3 KiB
Python
38 lines
No EOL
1.3 KiB
Python
import moto
|
|
import pytest
|
|
|
|
from util.config.validators import ConfigValidationException
|
|
from util.config.validators.validate_storage import StorageValidator
|
|
|
|
from test.fixtures import *
|
|
|
|
@pytest.mark.parametrize('unvalidated_config, expected', [
|
|
({}, ConfigValidationException),
|
|
({'DISTRIBUTED_STORAGE_CONFIG': {}}, ConfigValidationException),
|
|
({'DISTRIBUTED_STORAGE_CONFIG': {'local': None}}, ConfigValidationException),
|
|
({'DISTRIBUTED_STORAGE_CONFIG': {'local': ['FakeStorage', {}]}}, None),
|
|
])
|
|
def test_validate_storage(unvalidated_config, expected, app):
|
|
validator = StorageValidator()
|
|
if expected is not None:
|
|
with pytest.raises(expected):
|
|
validator.validate(unvalidated_config, None, None)
|
|
else:
|
|
validator.validate(unvalidated_config, None, None)
|
|
|
|
def test_validate_s3_storage(app):
|
|
validator = StorageValidator()
|
|
with moto.mock_s3():
|
|
with pytest.raises(ConfigValidationException) as ipe:
|
|
validator.validate({
|
|
'DISTRIBUTED_STORAGE_CONFIG': {
|
|
'default': ('S3Storage', {
|
|
's3_access_key': 'invalid',
|
|
's3_secret_key': 'invalid',
|
|
's3_bucket': 'somebucket',
|
|
'storage_path': ''
|
|
}),
|
|
}
|
|
}, None, None)
|
|
|
|
assert ipe.value.message == 'Invalid storage configuration: default: S3ResponseError: 404 Not Found' |