Издевательство над объектами Python Azure VaultPython

Программы на Python
Ответить
Anonymous
 Издевательство над объектами Python Azure Vault

Сообщение Anonymous »

Я застрял в насмешках над этим кодом:
from unittest.mock import patch
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient

class MyConfig:

def __init__(self, ftp_host=None, ftp_username=None, ftp_password=None, azure=False):
if self._azure:
key_vault_name = os.getenv("KEY_VAULT_NAME")
kv_uri = f"https://{key_vault_name}.acme.com"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=kv_uri, credential=credential)
self._ftp_host = client.get_secret("ftp-host").value
self._ftp_username = client.get_secret("ftp-username").value

return

Затем в моем модульном тесте
class TestMyConfig(unittest.TestCase):

@patch('azure.keyvault.secrets.SecretClient', autospec=True)
def setUp(self, mock):
secret_client = mock.return_value
secret_client.get_secret.side_effect = lambda x: {"ftp-host": "hostname", "ftp-user": "Donald Duck"}[x]
self.azure = MyConfig(azure=True)
return


Но он все равно пытается подключить хранилище к «acme.com», что, конечно же, приводит к ошибке. Есть совет?
Подобное исправление всех двух объектов приводит к одной и той же ошибке.
class TestMyConfig(unittest.TestCase):

@patch('azure.keyvault.secrets.SecretClient', autospec=True)
@patch('azure.identity.DefaultAzureCredential', autospec=True)
def setUp(self, mock, credential_mock):

secret_client = credential_mock.return_value
secret_client.get_secret.side_effect = lambda x: {"ftp-host": "hostname", "ftp-user": "Donald Duck"}[x]
self.azure = MyConfig(azure=True)

return


Подробнее здесь: https://stackoverflow.com/questions/793 ... lt-objects
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»