Настройки переопределения Django не назначаются в методе __init__, даже если они доступны
Я переопределяю настройки для всего тестового класса следующим образом:
@mock_aws
@override_settings(
AWS_CLOUDFRONT_DOMAIN="fake_domain",
AWS_CLOUDFRONT_KEY="fake_key",
AWS_CLOUDFRONT_KEY_ID="fake_key_id",
AWS_CLOUDFRONT_DISTRIBUTION_ID="fake_distribution_id",
)
class TestCloudfrontClient(TestCase):
def setUp(self):
self.cf_client = CloudfrontClient()
и вот класс CloudfrontClient:
class CloudfrontClient:
"""Client to interact with AWS S3 through Cloudfront"""
def __init__(
self,
cloudfront_pk_id=settings.AWS_CLOUDFRONT_KEY_ID,
cloudfront_key=settings.AWS_CLOUDFRONT_KEY,
cloudfront_distribution_id=settings.AWS_CLOUDFRONT_DISTRIBUTION_ID,
cloudfront_domain=settings.AWS_CLOUDFRONT_DOMAIN,
rsa_signer=rsa_signer
):
self.cf_client = client('cloudfront')
self.distribution_id = cloudfront_distribution_id
self.cloudfront_signer = CloudFrontSigner(cloudfront_pk_id, rsa_signer)
self.cloudfront_domain = cloudfront_domain
breakpoint()
В точке останова, если я печатаю settings.AWS_CLOUDFRONT_KEY_ID, я получаю fake_key_id, но когда я печатаю cloudfront_pk_id, я получаю пустую строку. То же самое происходит и с другими переменными, и это портит результаты моих тестов. Может быть, я что-то не понимаю в работе override_settings?