from unittest.mock import patch
|
|
import pytest
|
from django.test import override_settings
|
from io_storages.s3.utils import S3StorageError, catch_and_reraise_from_none
|
|
|
@override_settings(S3_TRUSTED_STORAGE_DOMAINS=['trusted-domain.com'])
|
def test_catch_and_reraise_from_none_with_untrusted_domain():
|
class TestClass:
|
s3_endpoint = 'http://untrusted-domain.com'
|
|
instance = TestClass()
|
|
@catch_and_reraise_from_none
|
def function_to_test(self):
|
raise Exception('Original Exception')
|
|
with patch('io_storages.s3.utils.extractor.extract_urllib') as mock_extract:
|
mock_extract.return_value.registered_domain = 'untrusted-domain.com'
|
with pytest.raises(S3StorageError) as excinfo:
|
function_to_test(instance)
|
assert 'Debugging info is not available for s3 endpoints on domain: untrusted-domain.com' in str(excinfo.value)
|
|
|
@override_settings(S3_TRUSTED_STORAGE_DOMAINS=['trusted-domain.com'])
|
def test_catch_and_reraise_from_none_with_trusted_domain():
|
class TestClass:
|
s3_endpoint = 'http://trusted-domain.com'
|
|
instance = TestClass()
|
|
@catch_and_reraise_from_none
|
def function_to_test(self):
|
raise Exception('Original Exception')
|
|
with patch('io_storages.s3.utils.extractor.extract_urllib') as mock_extract:
|
mock_extract.return_value.registered_domain = 'trusted-domain.com'
|
with pytest.raises(Exception) as excinfo:
|
function_to_test(instance)
|
assert 'Original Exception' in str(excinfo.value)
|